我正在开发一个Windows应用程序,其中我上传一个文本文件。 在该文本文件中有5000行,其中用逗号[,]分隔数据。 我在后端使用oledb连接[MS Access]。 我正在从文件中获取逗号分隔的数据并将其插入到数据库中。速度的数据输入数据库
但正如我观察到的那样,数据几乎是15000-16000条记录。 插入时每秒钟会花费近7条记录。
我想提高这个速度。
这是否取决于我们在后端用作数据库的内容?
sql server 2005可以提高速度而不是MS Access吗?
请帮我。
请参阅代码:
string file = openFileDialog1.FileName;
StreamReader inputData = new StreamReader(file);
while ((line = inputData.ReadLine()) != null)
{
subLine = line.Split(',');
/*Taking Unique ID from tradefile table*/
int ID=0;
try
{
da=new OleDbDataAdapter("select max(ID) from tradeFile",con);
DataSet ds=new DataSet();
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (ds.Tables[0].Rows[i][0].ToString() == "")
{
}
else
{
ID = int.Parse(ds.Tables[0].Rows[i][0].ToString());
ID++;
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
string unknown="unknown Fileld";
con.Open();
// int j=subLine.Length;
//for(int i=0;i<subLine.Length;i++)
{
int i = 0;
//int j=subLine.Length;
//int index=subLine.Length-j;
cmd=new OleDbCommand(
"insert into tradeFile values('"+ID+"','"+
subLine[i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
subLine[++i].ToString()+"','"+subLine[++i].ToString()+"','"+
unknown+"')",con);
cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
//counter++;
}
您是使用ADO.NET插入的吗?或者你使用某种类型的O/R映射? – Groo 2013-03-01 11:15:51
@格罗奥先生,ADO.NET – Freelancer 2013-03-01 11:17:47
然后你应该使用批处理,或者更好的'SQLBulkCopy'。我在下面添加了一个答案。 – Groo 2013-03-01 11:38:10