DataAdapter的Update方法的用法
比如说现在我有一个数据集对象ds,来自于本地一个数据库里的一张表。现在我向这个ds对象的表里中插入了两行数据,我如何回填到源数据库里呢?请大哥哥们帮小弟我写几行代码,简单...
比如说现在我有一个数据集对象ds,来自于本地一个数据库里的一张表。
现在我向这个ds对象的表里中插入了两行数据,我如何回填到源数据库里呢?请大哥哥们帮小弟我写几行代码,简单一点哦,小弟太菜 展开
现在我向这个ds对象的表里中插入了两行数据,我如何回填到源数据库里呢?请大哥哥们帮小弟我写几行代码,简单一点哦,小弟太菜 展开
4个回答
展开全部
调用 DataAdapter 的 Update 方法可以将 DataSet 中的更改解析回数据源。 与 Fill 方法类似,Update 方法将 DataSet 的实例和可选的 DataTable 对象或 DataTable 名称用作参数。 DataSet 实例是包含已做的更改的 DataSet,DataTable 标识从其中检索这些更改的表。 如果未指定 DataTable,则使用 DataSet 中的第一个 DataTable。
当调用 Update 方法时,DataAdapter 会分析已做的更改并执行相应的命令(INSERT、UPDATE 或 DELETE)。 当 DataAdapter 遇到对 DataRow 所做的更改时,它将使用InsertCommand、UpdateCommand 或 DeleteCommand 来处理该更改。 这样,您就可以通过在设计时指定命令语法并在可能时通过使用存储过程来尽量提高 ADO.NET 应用程序的性能。 在调用 Update 之前,必须显式设置这些命令。 如果调用了 Update 但不存在用于特定更新的相应命令(例如,不存在用于已删除行的 DeleteCommand),则会引发异常。
当调用 Update 方法时,DataAdapter 会分析已做的更改并执行相应的命令(INSERT、UPDATE 或 DELETE)。 当 DataAdapter 遇到对 DataRow 所做的更改时,它将使用InsertCommand、UpdateCommand 或 DeleteCommand 来处理该更改。 这样,您就可以通过在设计时指定命令语法并在可能时通过使用存储过程来尽量提高 ADO.NET 应用程序的性能。 在调用 Update 之前,必须显式设置这些命令。 如果调用了 Update 但不存在用于特定更新的相应命令(例如,不存在用于已删除行的 DeleteCommand),则会引发异常。
展开全部
DataSet myDateSet;
SqlDataAdapter mySDA;
事件一里的代码:
private void Person_xiugai_Load(object sender, EventArgs e)
{
try
{
string cmdString =“”//查询语句
SqlCommand myComm = new SqlCommand(cmdString, myConn);
myDateSet = new DataSet();
mySDA = new SqlDataAdapter();
mySDA.SelectCommand = myComm;
mySDA.Fill(myDateSet);
this.dataGridView1.DataSource = myDateSet.Tables[0];//我是用datagridveiw显示的
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
return;
}
}
//事件二里的代码:
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlCommandBuilder scb = new SqlCommandBuilder(mySDA); ;//设置一个SqlCommandBuilder 参数
mySDA.Update(myDateSet);//执行此步后直接同步数据库更新同时内存的DataSet也改变
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
return;
}
}
问题补充说明:
1.表里面必须有主键,并且你选出来的字段第一个必须是主键那列
2.必须是同一张表里的数据
3.修改数据绝对没问题。插入,我没试过
SqlDataAdapter mySDA;
事件一里的代码:
private void Person_xiugai_Load(object sender, EventArgs e)
{
try
{
string cmdString =“”//查询语句
SqlCommand myComm = new SqlCommand(cmdString, myConn);
myDateSet = new DataSet();
mySDA = new SqlDataAdapter();
mySDA.SelectCommand = myComm;
mySDA.Fill(myDateSet);
this.dataGridView1.DataSource = myDateSet.Tables[0];//我是用datagridveiw显示的
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
return;
}
}
//事件二里的代码:
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlCommandBuilder scb = new SqlCommandBuilder(mySDA); ;//设置一个SqlCommandBuilder 参数
mySDA.Update(myDateSet);//执行此步后直接同步数据库更新同时内存的DataSet也改变
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
return;
}
}
问题补充说明:
1.表里面必须有主键,并且你选出来的字段第一个必须是主键那列
2.必须是同一张表里的数据
3.修改数据绝对没问题。插入,我没试过
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要用DataAdapter的Update方法吗?
这个方法添加数据直接在DataGridView里操作,
然后写个按钮单击事件:
private void btnUpdate_Click(Object sender EventArgs e)
{
//自动生成用于修改,添加的command命令
SqlcommandBuilder builder=new SqlcommandBuilder(dataAdapter);
dataAdapter.Update(ds,"表名");
//重新把数据填充到dataGridView
(重新填充数据我就不写了)
}
这样你在dataGridView中直接所修改的记录,或添加的记录都可以通过这个方法直接保存!
这个方法添加数据直接在DataGridView里操作,
然后写个按钮单击事件:
private void btnUpdate_Click(Object sender EventArgs e)
{
//自动生成用于修改,添加的command命令
SqlcommandBuilder builder=new SqlcommandBuilder(dataAdapter);
dataAdapter.Update(ds,"表名");
//重新把数据填充到dataGridView
(重新填充数据我就不写了)
}
这样你在dataGridView中直接所修改的记录,或添加的记录都可以通过这个方法直接保存!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
填充到数据集ds后,你打开数据库,用sqlcommand下的执行更新语句(ExecuteNotQurey)就可以了,最后关闭数据库就行了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询