DataAdapter的Update方法的用法
发布网友
发布时间:2022-04-08 01:16
我来回答
共4个回答
热心网友
时间:2022-04-08 02:46
调用 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),则会引发异常。
热心网友
时间:2022-04-08 04:04
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.修改数据绝对没问题。插入,我没试过
热心网友
时间:2022-04-08 05:38
你要用DataAdapter的Update方法吗?
这个方法添加数据直接在DataGridView里操作,
然后写个按钮单击事件:
private void btnUpdate_Click(Object sender EventArgs e)
{
//自动生成用于修改,添加的command命令
SqlcommandBuilder builder=new SqlcommandBuilder(dataAdapter);
dataAdapter.Update(ds,"表名");
//重新把数据填充到dataGridView
(重新填充数据我就不写了)
}
这样你在dataGridView中直接所修改的记录,或添加的记录都可以通过这个方法直接保存!
热心网友
时间:2022-04-08 07:30
填充到数据集ds后,你打开数据库,用sqlcommand下的执行更新语句(ExecuteNotQurey)就可以了,最后关闭数据库就行了!