2011-09-27 33 views
0

我將多個數據插入到一個sqlite表中並始終返回相同的ID。但是字段ID被配置爲PK + autoinc Id。外鍵自動增量在sqlite .NET提供程序中不起作用

我用這個作爲連接字符串:

public static void SetConnectionString(string dataDataAccessPath) 
     { 
      _connectionString = String.Format(@"Data Source={0};Foreign Keys=ON", dataDataAccessPath); 
     } 

這種 「外鍵= ON」 爲除了連接是實現 「PRAGMA foreign_keys = ON」;必須爲每個打開的連接執行。

現在我不知道爲什麼在ConnectionString的新屬性不工作...

我是否出錯了?

回答

0

我不是SQLite方面的專家(實際上我對此沒有實際經驗),但是我會想象你的IDENTITY字段是否會自動增加你的插入與表格的定義有些關係比你使用的連接字符串。

提醒的是,你不能增加一個FOREIGN KEY本身,而是你需要與IDENTITY領域充當PRIMARY KEYFOREIGN KEY然後引用遞增表。

您可以添加您遇到問題的表的定義嗎?

+0

這就是我所做的。我的表格有一個ID,如啓用PK +自動增量。但對於另一張表,它的工作原理......我使用3.7.7.1。嗯......我使用TransactionScope而不是SQLIteTransaction,並且SQLiteCommand對象的Transaction + DbTransaction屬性爲NULL。也許有一個問題:/首先使用SQLiteTransaction檢查。 – msfanboy

+0

如果它適用於其他表,那麼它應該與連接字符串無關(但不應該與連接字符串有任何關係!)。我建議您發佈用於創建工作和非工作表的SQL,以及實際執行不增加身份字段的INSERT的代碼。 –

+0

停! ;-)對於其他表,它不工作時,我也做了多個插入。我只是僞造另一個插入。連接屬性不工作或由於TransactionScope。我明天檢查看到你! – msfanboy