我正在尝试使用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。是什么给了什么?
答案 0 :(得分:19)
您可能已声明并实例化了该连接,但是您是否已将其打开?
我要尝试的第一件事是删除交易内容,看看代码是否真的有效 - 看看它告诉你的是什么......
马丁