C# winform DataGridView添加的新行如何插入到数据库 Winfrom项目中使用DataGridView自动绑定的数据源在控件底部添加的新行如何保存到数据库? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置一下DataGridView中的属性 好像就可以了! //单元格结束编辑状态时,更新时间并保存数据 private void dgvInfo_CellEndEdit(object sender, DataGridViewCellEventArgs e) { OleDbCommandBuilder odb = new OleDbCommandBuilder(oda); oda.Update(ds.Tables["Info"]); } 请问你是用sqlDataAdpater还是用的sqlDataReader为DataGridView赋值的?如果是用sqlDataAdpater的话,你在初始化sqlDataAdpater对象的时候加上如下一条语句: SqlDataAdapter MyAdapter = new SqlDataAdapter("SELECT........",Conn); SqlCommandBuilder MyBuilder = new SqlCommandBuilder(MyAdapter);//这里就是初始化写回数据库的语句,然后当你修改了DataGridView之后,想提交的时候,在提交事件里加入: private void simpleButton1_Click(object sender, EventArgs e) { DialogResult Result_Info; try { if (this.dataSet1.HasChanges()) { Result_Info = MessageBox.Show("是否确定修改?", "内容修改", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk); if (Result_Info == DialogResult.OK) { //this.dataSet1.AcceptChanges();//加上这句话就不能进行数据库的写回了,已经接受,在这之后它就判断式没有修改了。 NewAdapter.Update(dataSet1,"table1");//写回数据库。与前面的SqlCommandBuilder 相对应。 this.gridControl2.DataSource = this.dataSet1; this.gridControl2.DataMember = "table1"; } else { //do nothing! } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }其中Click事件中,其他都是辅助的,你这里主要是要用一句NewAdapter.Update(dataSet1,"table1");调用的是NewAdapter自动生成的Update方法OK,看我这么累,你还是给点分吧 以前做过这个功能,就在添加前把和DataGridView中相同的数据删掉 ..........已解决,此贴散分了问题处在同事覆盖了数据源绑定保存使用dataGridView1.EndEdit();dataGridView1.CurrentCell = null;tUserInfoTableAdapter.Update(vMSDBDataSet3.tUserInfo);三句就可以。添加新记录和修改都一样。 如何创建共享程序集 如何罗列出axWindowsMediaPlayer1.currentPlaylist里面的内容 C# 多个PDF文件合并 急!在线等! 使用XenoCode字符串加密功能,怎么没有成功? 急寻 C# + sql server ce 高手指点!!!! Web应用程序中,如何实现动态加载DLL? 超郁闷中,到哪里去找? 一段whois查询代码,如何修正错误 怎样定义鼠标右击事件? 高手帮忙,看看我的程序那儿错了 c#winform制作安装程序如何出现注册码 asp.net mvc怎么样解析上传文件,直接存至数据库啊?求教。。。。
private void dgvInfo_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
OleDbCommandBuilder odb = new OleDbCommandBuilder(oda);
oda.Update(ds.Tables["Info"]);
}
SqlDataAdapter MyAdapter = new SqlDataAdapter("SELECT........",Conn);
SqlCommandBuilder MyBuilder = new SqlCommandBuilder(MyAdapter);//这里就是初始化写回数据库的语句,然后当你修改了DataGridView之后,想提交的时候,在提交事件里加入:
private void simpleButton1_Click(object sender, EventArgs e)
{
DialogResult Result_Info; try
{
if (this.dataSet1.HasChanges())
{
Result_Info = MessageBox.Show("是否确定修改?", "内容修改", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
if (Result_Info == DialogResult.OK)
{
//this.dataSet1.AcceptChanges();//加上这句话就不能进行数据库的写回了,已经接受,在这之后它就判断式没有修改了。
NewAdapter.Update(dataSet1,"table1");//写回数据库。与前面的SqlCommandBuilder 相对应。
this.gridControl2.DataSource = this.dataSet1;
this.gridControl2.DataMember = "table1";
}
else
{
//do nothing!
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
} }
其中Click事件中,其他都是辅助的,你这里主要是要用一句NewAdapter.Update(dataSet1,"table1");调用的是NewAdapter自动生成的Update方法
OK,看我这么累,你还是给点分吧
保存使用dataGridView1.EndEdit();
dataGridView1.CurrentCell = null;
tUserInfoTableAdapter.Update(vMSDBDataSet3.tUserInfo);三句就可以。
添加新记录和修改都一样。