我正在尝试使用System.Data.Sqlite库,我正在遵循有关优化插入的文档,因此我直接从文档中复制了此代码:
using (SQLiteTransaction mytransaction = myconnection.BeginTransaction()) { using (SQLiteCommand mycommand = new SQLiteCommand(myconnection)) { SQLiteParameter myparam = new SQLiteParameter(); int n; mycommand.CommandText = "INSERT INTO [MyTable] ([MyId]) VALUES(?)"; mycommand.Parameters.Add(myparam); for (n = 0; n < 100000; n ++) { myparam.Value = n + 1; mycommand.ExecuteNonQuery(); } } mytransaction.Commit(); }
现在,我通过使用来初始化我之前的连接
SqlConnection myconnection = new SqlConnection("Data Source=blah");
我有一个名为blah的数据库,具有正确的表和值.
问题是当我运行这段代码时,它说"由于对象的当前状态,操作无效"
我已尝试多次更改代码,它仍指向BeginTransaction.是什么赋予了?
您可能已声明并实例化了连接,但是您是否打开了它?
我要尝试的第一件事就是删除交易内容,看看代码是否真的有效 - 看看它告诉你什么......
马丁