使用这个读取数据库内容显示:
SqlConnection conn = new SqlConnection("Data Source=.;User ID=sa;Password=11;Initial Catalog=DataGridView"); sda = new SqlDataAdapter("select * from UserInfo", conn); sda.Fill(ds); dgv.DataSource = ds.Tables[0];
使用这个更新:
SqlCommandBuilder cb = new SqlCommandBuilder(sda); sda.Update(ds);
可以更新数据库中date,float,int这类数字的内容,而nchar,nvarchar等这类全都不会更新。这是为什么?
再有一个现象,同样的select语句,在两个datagridview中显示时,一个会显示数据的空位,一个就不会,这个是哪里控制的?例如在dgv1中显示“KSG-11 “,dgv2中就显示”KSG-11″。和这个有关系么?都是用上述方法绑定的数据。
解决方案
50
写个更新的函数手动更新一下,SQL自动更新毕竟还是很多局限的。我们一般做法是写个数据模型,将属性和数据库的字段对应,绑定到DataGridView的列,更新的时候写个Update函数本人去更新。