ADO.net速度慢的问题
我这里还有一个问题想请教你大家:
经我们测试,发现ADO.Net的写入速度为什么比ADO的写入速度忙了7倍?但我们不知道ADO.net花费在那个环节呢?不知道如何提高速度。
ADO.net的测试程序在下面,ADO也是使用循环,而且方法也是非常笨的。
代码:
private void button1_Click(object sender, System.EventArgs e)
{
OleDbCommand cmdInsertGoods;
OleDbParameterCollection pars;
OleDbConnection conn;
DataSet Goods;
DataTable goods;
conn = new OleDbConnection(textBox1.Text);
conn.Open();
//初始化插入Goods的命令
cmdInsertGoods = new OleDbCommand(@"INSERT INTO Goods2
(fstrComputer, fstrOperator, fdtmOpTime, fstrGoodsID, fstrGdsName, fstrGdsStandard,
fstrGdsOrigin, fblnIsColor, fblnIsGoods, fblnIsSize, fblnIsUse, fstrSizeGroupID,
fstrUnitM, fblnIsPro, fblnIsBrunt, fstrProperties)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",conn);
pars = cmdInsertGoods.Parameters;
OleDbParameter parfstrComputer = pars.Add(new OleDbParameter("fstrComputer", OleDbType.VarWChar, 50, "fstrComputer"));
OleDbParameter parfstrOperator = pars.Add(new OleDbParameter("fstrOperator", OleDbType.VarWChar, 50, "fstrOperator"));
OleDbParameter parfdtmOpTime = pars.Add(new OleDbParameter("fdtmOpTime", OleDbType.DBTimeStamp));
OleDbParameter parfstrGoodsID = pars.Add(new OleDbParameter("fstrGoodsID", OleDbType.VarWChar, 50, "fstrGoodsID"));
OleDbParameter parfstrGdsName = pars.Add(new OleDbParameter("fstrGdsName", OleDbType.VarWChar, 128, "fstrGdsName"));
OleDbParameter parfstrGdsStandard = pars.Add(new OleDbParameter("fstrGdsStandard", OleDbType.VarWChar, 50, "fstrGdsStandard"));
OleDbParameter parfstrGdsOrigin = pars.Add(new OleDbParameter("fstrGdsOrigin", OleDbType.VarWChar, 50, "fstrGdsOrigin"));
OleDbParameter parfblnIsColor = pars.Add(new OleDbParameter("fblnIsColor", OleDbType.Boolean, 2, "fblnIsColor"));
OleDbParameter parfblnIsGoods = pars.Add(new OleDbParameter("fblnIsGoods", OleDbType.Boolean, 2, "fblnIsGoods"));
OleDbParameter parfblnIsSize = pars.Add(new OleDbParameter("fblnIsSize", OleDbType.Boolean, 2, "fblnIsSize"));
OleDbParameter parfblnIsUse = pars.Add(new OleDbParameter("fblnIsUse", OleDbType.Boolean, 2, "fblnIsUse"));
OleDbParameter parfstrSizeGroupID = pars.Add(new OleDbParameter("fstrSizeGroupID", OleDbType.VarWChar, 36, "fstrSizeGroupID"));
OleDbParameter parfstrUnitM = pars.Add(new OleDbParameter("fstrUnitM", OleDbType.VarWChar, 20, "fstrUnitM"));
OleDbParameter parfblnIsPro = pars.Add(new OleDbParameter("fblnIsPro", OleDbType.Boolean, 2, "fblnIsPro"));
OleDbParameter parfblnIsBrunt = pars.Add(new OleDbParameter("fblnIsBrunt", OleDbType.Boolean, 2, "fblnIsBrunt"));
OleDbParameter parfstrProperties = pars.Add(new OleDbParameter("fstrProperties", OleDbType.VarWChar, 200, "fstrProperties"));
OleDbCommand cmdSelectGoods = new OleDbCommand("SELECT * FROM Goods",conn);
Goods = new DataSet();
OleDbDataAdapter adp = new OleDbDataAdapter(cmdSelectGoods);
adp.Fill(Goods,"Goods");
goods = Goods.Tables["Goods"];
DataColumn colfstrComputer = goods.Columns["fstrComputer"];
DataColumn colfstrOperator = goods.Columns["fstrOperator"];
DataColumn colfdtmOpTime = goods.Columns["fdtmOpTime"];
DataColumn colfstrGoodsID = goods.Columns["fstrGoodsID"];
DataColumn colfstrGdsName = goods.Columns["fstrGdsName"];
DataColumn colfstrGdsStandard = goods.Columns["fstrGdsStandard"];
DataColumn colfstrGdsOrigin = goods.Columns
["fstrGdsOrigin"];
DataColumn colfblnIsColor = goods.Columns["fblnIsColor"];
DataColumn colfblnIsGoods = goods.Columns["fblnIsGoods"];
DataColumn colfblnIsSize = goods.Columns["fblnIsSize"];
DataColumn colfblnIsUse = goods.Columns["fblnIsUse"];
DataColumn colfstrSizeGroupID = goods.Columns["fstrSizeGroupID"];
DataColumn colfstrUnitM = goods.Columns["fstrUnitM"];
DataColumn colfblnIsPro = goods.Columns["fblnIsPro"];
DataColumn colfblnIsBrunt = goods.Columns["fblnIsBrunt"];
DataColumn colfstrProperties = goods.Columns["fstrProperties"];
foreach(DataRow row in goods.Rows)
{
try
{
parfstrComputer.Value = row[colfstrComputer];
parfstrOperator.Value = row[colfstrOperator];
parfdtmOpTime.Value = row[colfdtmOpTime];
parfstrGoodsID.Value = row[colfstrGoodsID];
parfstrGdsName.Value = row[colfstrGdsName];
parfstrGdsStandard.Value = row[colfstrGdsStandard];
parfstrGdsOrigin.Value = row[colfstrGdsOrigin];
parfblnIsColor.Value = row[colfblnIsColor];
parfblnIsGoods.Value = row[colfblnIsGoods];
parfblnIsSize.Value = row[colfblnIsSize];
parfblnIsUse.Value = row[colfblnIsUse];
parfstrSizeGroupID.Value = row[colfstrSizeGroupID];
parfstrUnitM.Value = row[colfstrUnitM];
parfblnIsPro.Value = row[colfblnIsPro];
parfblnIsBrunt.Value = row[colfblnIsBrunt];
parfstrProperties.Value = row[colfstrProperties];
cmdInsertGoods.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show(this,ex.Message);
}
}
}