读书人

求教用事务向Access数据库中插入一批数

发布时间: 2012-05-12 15:39:31 作者: rapoo

求教用事务向Access数据库中插入一批数据应该怎么弄???
这段是我原本的代码,如果要改成用事务应该怎样改呢?

C# code
 string connectionString = Properties.Settings.Default.dataConnectionString;                int i = 0;                DateTime gendate;                OleDbConnection conn = new OleDbConnection(connectionString);                if (chooselistbox.Items.Count == 0)                {                    throw new Exception("没有数据存储");                }                conn.Open();                while (i < chooselistbox.Items.Count)                {                    string sql = "insert into tData(fCode,fGenDate) values(?,?) ";                    d.TryGetValue(chooselistbox.Items[i].ToString(), out gendate);                    OleDbCommand cmd = new OleDbCommand(sql, conn);                    cmd.Parameters.Add("?", OleDbType.VarChar, 50).Value = chooselistbox.Items[i];                    cmd.Parameters.Add("?", OleDbType.Date).Value = gendate;                    cmd.ExecuteNonQuery();                    i++;                }                conn.Close();


[解决办法]
说实话,无论你怎么做,Access都并不适合处理数十万规模的数据。事务的作用也不是“批量处理数据”,只是确保操作的原子性,换言之,你不能从使用事务中获得性能的增益。

你应该考虑迁移到SQL Server,它支持一种叫“BULK INSERT”的方式来批量插入数据。

你这属于典型的用错误的技术解决错误的问题。
[解决办法]
http://www.cnblogs.com/zhouyz/articles/transaction.html

读书人网 >C#

热点推荐