2010-04-08 47 views
0

我想將SQL數據庫中的表綁定到DataGridView控件。我想這樣做是爲了當用戶在DataGridView中輸入新的一行數據時,記錄會自動添加到數據庫中。這是我當前的嘗試......如何將SQL數據綁定到.NET DataGridView?

BOMClassesDataContext DB = new BOMClassesDataContext(); 

    Form_Load() 
    { 
     var mfrs = from m in DB.Manufacturers 
        select m; 

     BindingSource bs = new BindingSource(); 
     bs.DataSource = mfrs; 

     dataGridView1.DataSource = bs; 
    } 

    dataGridView_CellValueChanged() 
    { 
     try 
     { 
      DB.SubmitChanges() 
     } 
     catch(Exception Ex) 
     { 
      MessageBox.Show(Ex.Message); 
     } 
    } 

如果我點擊底部的空行,它在表上的ID(身份)柱,以「0」自動填充的,而不是下一個未使用的價值。如果我手動將該值更改爲下一個可用的值,那麼它會添加新記錄,但如果將它保留爲0,則不會執行任何操作。我怎樣才能解決這個問題?在我的LINQ to SQL類中,表的ID列的AutoGenerate屬性設置爲true。

回答

1

用戶完成後需要執行DB.SubmitChanges()

使用Linq To SQL,直到完成該操作爲止,不會更改底層數據庫。

+0

好的,只要我手動輸入ID(標識列),就可以工作。有沒有辦法讓它自動增加ID列? ID列設置爲身份。 – PICyourBrain 2010-04-08 20:24:18

+0

同樣在什麼事件最好用來觸發SubmitChanges方法? CellValueChanged? – PICyourBrain 2010-04-08 20:27:53

+0

@Jordan:在您的Linq-To-Sql設計器中,將ID列的「自動生成的屬性」值更改爲True。將其從數據網格中隱藏,除非用戶有理由看到它。 – 2010-04-08 20:29:48

相關問題