2010-06-14 34 views
0

我試圖從C#應用程序中將數據插入到本地SQLITE數據庫文件中。該事務不會引發任何錯誤,但數據不會被插入。相同的插入語句在查詢分析器中工作。SQLITE - INSERT不會返回錯誤,但不會插入任何數據

我需要執行提交嗎?有沒有提交方法?

命令的事務屬性爲null ..

var command = new SQLiteCommand(insert.BuildInsert(tableName,keyValuePairs),Connection); 

      command.ExecuteNonQuery(); 

UPDATE:

我也試圖assciate我SQLiteCommand與SQLiteTransaction但有沒有運氣。

try 
     { 
      SQLiteTransaction liteTransaction = Connection.BeginTransaction(); 
      SQLiteCommand command = new SQLiteCommand(insert.BuildInsert(tableName, keyValuePairs), Connection); 
      command.Transaction = liteTransaction; 
      command.ExecuteNonQuery(); 
      liteTransaction.Commit(); 
     } 
     catch (SQLiteException e) 
     { 
      //error 
      connection.Close(); 
     } 

BuildInsert方法只是構造一個INSERT字符串。插入在查詢分析器中正常工作。

public string BuildInsert(string tableName, IDictionary<string, string> testDataDic) 
    { 
     stringBuilder = new StringBuilder(String.Format("INSERT INTO {0} ", tableName)); 
     AddColumns(stringBuilder,testDataDic.Keys); 
     AddValues(stringBuilder, testDataDic.Values); 

     return stringBuilder.ToString(); 

    } 

這是INSERT語句的一個例子。這代碼以外的罰款,但不會拋出任何錯誤:

INSERT INTO TestData (walking,running,image,yoga,exercise,meditation,hobby,somethingelse,howoften,numtechniques,userreturn,chosentechnique,chosentechnique)VALUES ("true","I will try to use deep breathing.","false","true","false","false","true","true","When I'm stressed","1","true","deepbreathing","deepbreathing"); COMMIT; 
+0

郵政編碼,看看你是如何嘗試 – Pentium10 2010-06-14 20:47:47

+0

我想看看BuildInsert方法的代碼。也許有些事情並不完全正確。 – thorkia 2010-06-14 21:41:25

+0

好吧,現在您的AddColumns是否使所有列都在()中?喜歡插入用戶(用戶名,密碼)? - 並確保沒有額外的逗號? AddValues相同,是否構建查詢正確?什麼是來自BuildInsert的示例返回值? – thorkia 2010-06-14 21:55:56

回答

0

DOH!所以本地數據庫構建操作被設置爲'總是copu'我有同一個文件的多個版本。

對不起。這是跛腳。

相關問題