如何将dataset的数据更新到数据库的表中?

时间:2021-12-07 09:04:12
因为想先存储用户输入的数据到dataset,然后在最后由用户确定后再更新到数据库中,但是用dataadapter_temp.update(dataset_ds)不能更新到数据库,

只能不用dataadapter和dataset对象的情况下,用command_insert.ExecuteNonQuery()才能更新到数据库,请问如果用dataset和dataadapter如何更新到数据库?

5 个解决方案

#1


this.oleDbDataAdapter1.SelectCommand.CommandText = 
"SELECT * FROM list";
try
{
this.OpenDatabase();
System.Data.OleDb.OleDbCommandBuilder cmd =
new System.Data.OleDb.OleDbCommandBuilder(this.oleDbDataAdapter1);
this.oleDbDataAdapter1.Update(ds.Tables[0].Select());

this.CloseDatabase();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
this.CloseDatabase();
throw(e);
}

#2


这个方法和我上面说的方法有什么不同吗?是一样的吧,但是为什么不行呢???继续请教

#3


littlehb(网际浪子)的方法跟你说的是不一样的,
你可以在MSDN查询:OleDbCommandBuilder,这里介绍的比较详细。

#4


使用强类型DATASET的代码
写在UPDATE内
myGridBind();
string key=DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
string a,b;
TextBox sn,cn;
sn=(TextBox)e.Item.Cells[1].Controls[0];
cn=(TextBox)e.Item.Cells[2].Controls[0];
studentname=sn.Text;
classno=cn.Text;
DataSet1.StudentRow r;   //强类型DATASET
r=dataSet11.Student.FindByS_No(key);
r.S_Name=a;
r.C_No=b;
sqlDataAdapter1.Update(dataSet11);
myGridBind();
DataGrid1.EditItemIndex=-1;
myGridBind();

#5


我知道了,我自己搞明白了,嘻嘻是一个非常常识性的问题:我只是定义了一个insert command对象,我以为这样就不用在dataset的table中加入新的row了,结果当然不行,现在我加入了新的row,然后再update,结果就行了,谢谢各位!!!

#1


this.oleDbDataAdapter1.SelectCommand.CommandText = 
"SELECT * FROM list";
try
{
this.OpenDatabase();
System.Data.OleDb.OleDbCommandBuilder cmd =
new System.Data.OleDb.OleDbCommandBuilder(this.oleDbDataAdapter1);
this.oleDbDataAdapter1.Update(ds.Tables[0].Select());

this.CloseDatabase();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
this.CloseDatabase();
throw(e);
}

#2


这个方法和我上面说的方法有什么不同吗?是一样的吧,但是为什么不行呢???继续请教

#3


littlehb(网际浪子)的方法跟你说的是不一样的,
你可以在MSDN查询:OleDbCommandBuilder,这里介绍的比较详细。

#4


使用强类型DATASET的代码
写在UPDATE内
myGridBind();
string key=DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
string a,b;
TextBox sn,cn;
sn=(TextBox)e.Item.Cells[1].Controls[0];
cn=(TextBox)e.Item.Cells[2].Controls[0];
studentname=sn.Text;
classno=cn.Text;
DataSet1.StudentRow r;   //强类型DATASET
r=dataSet11.Student.FindByS_No(key);
r.S_Name=a;
r.C_No=b;
sqlDataAdapter1.Update(dataSet11);
myGridBind();
DataGrid1.EditItemIndex=-1;
myGridBind();

#5


我知道了,我自己搞明白了,嘻嘻是一个非常常识性的问题:我只是定义了一个insert command对象,我以为这样就不用在dataset的table中加入新的row了,结果当然不行,现在我加入了新的row,然后再update,结果就行了,谢谢各位!!!