使用BeginTransaction的SQLite.Net问题

时间:2010-03-15 12:54:04

标签: 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();
  } 

现在,我使用

在此之前初始化我的连接
SqlConnection myconnection = new SqlConnection("Data Source=blah");

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

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

我已尝试多次更改代码,但仍指向BeginTransaction。是什么给了什么?

1 个答案:

答案 0 :(得分:19)

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

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

马丁