2010-03-15 27 views
7

我試圖使用System.Data.Sqlite庫,而我下面講優化插入文檔所以我複製該代碼直接從文檔:SQLite.Net問題有了的BeginTransaction

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

現在,我使用前初始化I連接

SqlConnection myconnection = new SqlConnection("Data Source=blah"); 

我有一個名爲blah的數據庫,並帶有正確的表和值。

問題是,當我運行這段代碼,它說:「操作是無效的,由於對象的當前狀態」

我試圖改變周圍幾次的代碼,它仍然指向的BeginTransaction 。是什麼賦予了?

回答

15

您可能已經聲明並實例化了連接,但是您打開了它嗎?

第一件事我會嘗試是去除交易的東西,看看是否代碼實際工作 - 看什麼,告訴你......

馬丁

+0

我有一些代碼,我haved與所使用的交易SQLite,但不在我的工作機器上。如果我記得,我今晚會看看我的私人機器... Martin。 – 2010-03-15 13:03:51

+4

我是個白癡,謝謝。是的,我在交易之前做了所有工作,我想我忘了我必須打開連接哈哈。 – cam 2010-03-15 13:04:48

+1

沒有問題matey ... – 2010-03-15 13:06:02