关于更新数据库的问题

Anders1 2003-10-11 06:12:49
下面的代码是关于数据库更新的,它可以向数据库添加一行数据,但对其中某行中的一个字段的值进行修改后,被修改的值可以在数据集中更新,却不能在数据库中更新!请高手指点一下!非常感谢!!!!!


SqlConnection conn;
SqlDataAdapter da;
DataSet ds = new DataSet();
CurrencyManager cm;

private void btnGetData_Click(object sender, System.EventArgs e)
{
string connString = "Data Source = C1;"+
"Initial Catalog = d1;"+
"User ID = d1adm;"+
"Password = password";

conn = new SqlConnection(connString);
conn.Open();

da = new SqlDataAdapter("select * from products",conn);
SqlCommandBuilder sb = new SqlCommandBuilder(da);

da.Fill(ds,"products");
dataGrid1.DataSource = ds;
cm = (CurrencyManager)this.BindingContext[ds,"products"];
}
//下面的代码可以正确添加数据到数据库
private void btnAdd_Click(object sender, System.EventArgs e)
{
DataRow row = ds.Tables["products"].NewRow();
row["product_id"]="123";
row["product_name"]="zk";
row["description"]="description";
ds.Tables["products"].Rows.Add(row);
da.Update(ds,"products");

}
//下面的代码不能将修改的数据在数据库中更新
private void btnEdit_Click(object sender, System.EventArgs e)
{
cm.Position = 0;
DataTable dt = ds.Tables["products"];
DataRow row = dt.Rows[cm.Position];
row.BeginEdit();
row["product_id"]="234";
row.EndEdit();
dt.AcceptChanges();
da.Update(ds,"products");
}
...全文
54 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwbxn 2003-10-31
  • 打赏
  • 举报
回复
因为DataSet.AcceptChange是根据数据行的RowState更新DataSet中的数据,先执行这句后,RowState就更新过了,所以下面的DataAdapter.Update()找不到要更新的数据行,所以数据库不会有任何更新。
suguanqun 2003-10-17
  • 打赏
  • 举报
回复
SqlConnection conn = new SqlConnection(cnstring);
string strkkk = "update aa set name= '" + bname.Text.Trim() +"'where ID= 'yourupdateid'";
SqlCommand mycommand1 =new SqlCommand(strkkk,conn);

try
{
mycommand1.Connection.Open();
mycommand1.ExecuteNonQuery();

}
catch(System.Exception err )
{
Response.Write(err);
}
finally
{
}
91bct 2003-10-17
  • 打赏
  • 举报
回复
OleDbConnection myConn = new OleDbConnection(myConnection);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(myDataAdapter);

myConn.Open();

DataSet custDS = new DataSet();
myDataAdapter.Fill(custDS);

//code to modify data in dataset here

myDataAdapter.Update(custDS, myTableName);

myConn.Close();
xiaomaolover 2003-10-16
  • 打赏
  • 举报
回复
可以用sql直接对数据库进行操作嘛`?
可以解决的
chengyuanben 2003-10-14
  • 打赏
  • 举报
回复
帮你up

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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