C# 带有BeginTransaction的SQLite.Net问题

C# 带有BeginTransaction的SQLite.Net问题,c#,sqlite,system.data.sqlite,C#,Sqlite,System.data.sqlite,我正在尝试使用System.Data.Sqlite库,并遵循有关优化插入的文档,因此我直接从文档中复制了以下代码: using (SQLiteTransaction mytransaction = myconnection.BeginTransaction()) { using (SQLiteCommand mycommand = new SQLiteCommand(myconnection)) { SQLiteParameter myparam = new

我正在尝试使用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();
  } 
我有一个名为blah的数据库,它有正确的表和值

问题是当我运行这段代码时,它说“由于对象的当前状态,操作无效”


我尝试过多次更改代码,但它仍然指向BeginTransaction。给出了什么?

您可能已经声明并实例化了连接,但您是否已经打开了它

我要做的第一件事是删除事务内容,看看代码是否真的有效——看看这会告诉你什么


Martin

我有一些代码,其中我使用了SQLite的事务,但在我的works机器上没有。如果我记得的话,今晚我会帮你看一下我的个人电脑。。。马丁,我是个白痴,谢谢。是的,在事务处理之前,我已经做好了一切准备,我想我忘了我必须打开连接哈哈。作为一个村里的白痴,我想我还应该补充一点,你需要在调用
BeginTransaction()
之前打开连接
SqlConnection myconnection = new SqlConnection("Data Source=blah");