2010-04-08 90 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

相关问题