【问题标题】:SQLite.Net Issue With BeginTransactionBeginTransaction 的 SQLite.Net 问题
【发布时间】:2011-01-27 16:17:21
【问题描述】:

我正在尝试使用 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。什么给了?

【问题讨论】:

    标签: c# sqlite system.data.sqlite


    【解决方案1】:

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

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

    马丁

    【讨论】:

    • 我有一些代码在其中使用了 SQLite 事务,但不是在我的工作机器上。如果我记得的话,今晚我会在我的个人机器上为你看看……马丁。
    • 我是个白痴,谢谢。是的,我在交易之前一切正常,我想我忘了我必须打开连接哈哈。
    • 作为同乡的白痴,我想我还要补充一点,您需要在之前打开连接,然后调用BeginTransaction()
    猜你喜欢
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2012-07-14
    相关资源
    最近更新 更多