C# winform DataGridView添加的新行如何插入到数据库

yxfox 2010-04-07 10:17:59
Winfrom项目中使用DataGridView自动绑定的数据源
在控件底部添加的新行如何保存到数据库?
...全文
1009 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yxfox 2010-04-08
  • 打赏
  • 举报
回复
..........

已解决,此贴散分了

问题处在同事覆盖了数据源绑定。。。
保存使用

dataGridView1.EndEdit();
dataGridView1.CurrentCell = null;
tUserInfoTableAdapter.Update(vMSDBDataSet3.tUserInfo);

三句就可以。
添加新记录和修改都一样。
事理 2010-04-07
  • 打赏
  • 举报
回复
//单元格结束编辑状态时,更新时间并保存数据
private void dgvInfo_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
OleDbCommandBuilder odb = new OleDbCommandBuilder(oda);
oda.Update(ds.Tables["Info"]);
}
June1991 2010-04-07
  • 打赏
  • 举报
回复
学习学习
hzw36258177 2010-04-07
  • 打赏
  • 举报
回复
我也等答案
gxzh0817 2010-04-07
  • 打赏
  • 举报
回复
设置一下DataGridView中的属性 好像就可以了!
lv8206158 2010-04-07
  • 打赏
  • 举报
回复
以前做过这个功能,就在添加前把和DataGridView中相同的数据删掉
JOCLI 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kun20055293 的回复:]
请问你是用sqlDataAdpater还是用的sqlDataReader为DataGridView赋值的?如果是用sqlDataAdpater的话,你在初始化sqlDataAdpater对象的时候加上如下一条语句:
SqlDataAdapter MyAdapter = new SqlDataAdapter("SELECT........",Conn);
SqlCommandBuilder……
[/Quote]

....
kun20055293 2010-04-07
  • 打赏
  • 举报
回复
请问你是用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,看我这么累,你还是给点分吧

Taiyangchen 2010-04-07
  • 打赏
  • 举报
回复
liuxing19870629 2010-04-07
  • 打赏
  • 举报
回复
在行验证里面写,如果数据格式正确的话,再手动的用代码添加到数据库。
ginni215 2010-04-07
  • 打赏
  • 举报
回复
dataadapter.update();

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧