Code Bye

使用datagridview直接更新数据库的不更新问题

使用这个读取数据库内容显示:
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函数本人去更新。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用datagridview直接更新数据库的不更新问题