2010-10-01 98 views
1

我已創建了一個功能,其目的是將數據添加到數據庫中(我使用的LINQ to SQL)LINQ到SQL插入數據c#

這是我寫的代碼

 public static void Add(string Name, int Quantitty) { 

     DataDataContext Database = new DataDataContext(); 
     tests test = new tests(); 

     test.Name = Name; 
     test.Quantity = (short)Quantitty; 

     Database.tests.InsertOnSubmit(test); 

     Database.SubmitChanges(); 
    } 

我打開了我的應用程序,按下了調用該函數的按鈕並關閉了應用程序,這比我在VS中打開表格數據並且數據庫中沒有數據。

我不明白我做錯了什麼。

回答

3

您使用本地數據庫文件(例如Database1.sdf)嗎?如果是這種情況,那麼在構建應用程序時,數據庫將被複制到bin文件夾中,然後使用該副本。應用程序將數據添加到不同的文件,而不是打開一個VS。

+0

不,我正在使用基於服務的數據庫(.mdf) – dnsau 2010-10-01 14:36:10

+0

基於服務的數據庫也被複制到輸出文件夾。嘗試將VS附加到bin/debug中的mdf文件中,在其中運行您的應用程序,並查看數據是否以該文件結尾。 – Garrett 2010-10-01 14:42:47

+1

是的:)它有效ty – dnsau 2010-10-01 14:59:29

1

你有沒有在調試模式下通過檢查你是否有任何錯誤?順便說一句,你可能應該有一個使用聲明和嘗試在那裏可能?

編輯添加的代碼示例

這將顯示是否有異常的的SubmitChanges提出,也是使用可以確保調用Dispose

using(var Database = new DataDataContext()) 
{ 
    tests test = new tests(); 

    test.Name = Name; 
    test.Quantity = (short)Quantitty; 

    Database.tests.InsertOnSubmit(test); 
    try 
    { 
     Database.SubmitChanges(); 
    } 
    catch (ChangeConflictException e) 
    { 
     //report error, log error whatever... 
    } 
} 
0

1-使用嘗試,趕上。

2-哪一個是主鍵?你不能插入沒有主鍵(或表必須有primaray鍵)

3-你有沒有調試你的代碼?

+0

是的,它有主鍵問題是,我不知道如何添加它,因爲我選擇了它自己增加一個,我已經調試我的代碼 – dnsau 2010-10-01 14:26:41

+0

,所以我建議使用try catch,並讓我們看看是什麼會發生。 – 2010-10-01 14:29:01

+0

什麼也沒有發生,一切都與以前一樣 – dnsau 2010-10-01 14:32:41

0

嗨使用時間戳數據類型。我想問題會解決。

+0

這是一個評論? – 2012-12-02 02:34:27