DataGridView的添加、编辑、更新_第1页
DataGridView的添加、编辑、更新_第2页
DataGridView的添加、编辑、更新_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DataGridView的添加、编辑、更新转载于太上老君的个人资料今天说说 DataGridView 吧,在一个小项目中用到了这个。面对的问题是要在 DataGridView 中编辑、更新其中的值,然后怎么回写到数据库中?一开始的想法也是用循环读取 Cell,然后自己手动回写到数据库中,但总觉得不方便,认为微软会把这些工作封装好的,就上网查了一下,发现确实有这个功能。先描述一下数据库中的结构表 1 表 2IDNameSexIDIDSex1A11 男2B22 女3C2一开始的绑定是很容易的,但绑定后更新不了数据库中的值,一更新就提示 SexID 的值是没设置数据源的,因为 SexID 是外键。还

2、好在网上查到了一个折中的解决办法,是在建立一个 DataTable 自己做映射:DataTabledtRelation=newDataTable();dtRelation.Columns.Add(Code,typeof(byte);dtRelation.Columns.Add(DisplayString,typeof(string);dtRelation.Rows.Add(newobject0,苹果);dtRelation.Rows.Add(newobject1,香蕉);dtRelation.Rows.Add(newobject2,西瓜);2.设置下拉列表列(DataGridViewCombo

3、xColumn)属性:下拉列表列.DataSource=dtRelation;下拉列表列.ValueMember=Code;下拉列表列.DisplayMember=DisplayString;下拉列表列.DataPropertyName=数据源.列名;后来我发现其实不用 DataTable 也可以直接让 DataGridView 完成绑定 2 个表的操作,而且更新时是可以直接更新的:SqlDataAdapterda;SqlCommandcmd;SqlCommandBuildercmdBuilder;DataSetds;privatevoidDataBind()(da=newSqlDataAda

4、pter(cmd);cmdBuilder=newSqlCommandBuilder(da);ds=newDataSet();da.Fill(ds,Students);dataGridView1.AutoGenerateColumns=false;绑定数据源dataGridView1.DataSource=ds.TablesStudents;Column1.DataPropertyName=ds.TablesStudents.Columns1.ColumnName;Column2.DataPropertyName=ds.TablesStudents.Columns2.ColumnName;Col

5、umn3.DataPropertyName=ds.TablesStudents.Columns3.ColumnName;初始化性别stringsql_Sex=select*fromSex;SqlCommandcmd_Sex=newSqlCommand(sql_Sex,Main.Conn);SqlDataAdapterda_Sex=newSqlDataAdapter(cmd_Sex);DataSetds_Sex=newDataSet();da_Sex.Fill(ds_Sex,Sex);Column3.DataSource=ds_Sex.TablesSex;Column3.DisplayMembe

6、r=Value;Column3.ValueMember=ID;stringsqlSTR=select*fromStudents;cmd=newSqlCommand(sqlSTR,Main.Conn);DataBind();至此,我们已经成功将 DataGridView 绑定了 2 个表,而且不用 DataTable 做中间层。关键就在:DataSource设定要绑定的数据源设置更新后回写到数据库的哪一列,多表时要把数据设置要显示在 DataGridView 的字段设置对应 DisplayMember 的实际值的字段这几个属性上。在更新回数据源时还有一点要注意,就是绑定数据源时一定要DataPropertyName源也写上DisplayMemberValueMember/有主键,这样你只要设置 SqlDataAdapter 中的 SelectCommand 属性,其余的 UpdateCommand、DeleteCommandInsertCommand 属性就会自动设置、并完成相应的功能:try(da.Update(ds.Tables0.GetChanges();MessageBox.Show(数据处理成功!);ds

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论