使用BeginTransaction的SQLite.Net问题

cam*_*cam 10 c# sqlite system.data.sqlite

我正在尝试使用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();
  } 
Run Code Online (Sandbox Code Playgroud)

现在,我通过使用来初始化我之前的连接

SqlConnection myconnection = new SqlConnection("Data Source=blah");
Run Code Online (Sandbox Code Playgroud)

我有一个名为blah的数据库,具有正确的表和值.

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

我已尝试多次更改代码,它仍指向BeginTransaction.是什么赋予了?

Mar*_*lan 22

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

我要尝试的第一件事就是删除交易内容,看看代码是否真的有效 - 看看它告诉你什么......

马丁

  • 我是个白痴,谢谢.是的,我在交易之前把所有东西都搞砸了,我想我忘了我必须打开连接哈哈. (4认同)
  • 圣人的建议.在某些时候我们都被这个抓住了. (2认同)
  • 该死的......今天我遇到了同样的问题.感觉像现在的村民白痴:( (2认同)