数据UPDATE了以后怎样更新数据?还有更新了后怎么刷新?

s98 2004-08-28 02:34:35
string updateSql = "update foodsort set sort1='"+
str2+"',sort2='"+str3+"',sort3='"+str4+"' where code='"+str1+"'";
MessageBox.Show(updateSql);
OleDbCommand myCommand = new OleDbCommand(updateSql,oleDbConnection1);
myCommand.ExecuteNonQuery();
myAdapter.Update(dataSet1.Tables[0]);//现在这两句就不起作用。我这样写是对的吗?
this.dataGrid1.Refresh();//还有就是怀疑我的SQL有问题
this.oleDbConnection1.Close();
...全文
272 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
weisai 2004-08-30
  • 打赏
  • 举报
回复
先用select语句(包含主键)选出要更改的记录,然后更改数据(不用更改主键的值),更新数据.
李洪喜 2004-08-30
  • 打赏
  • 举报
回复
我一般是把当前表清空,再重新读入数据.
当然了.我是使用winform,浪费一点时间无所谓.
「已注销」 2004-08-29
  • 打赏
  • 举报
回复
我再顶!!!没有人知道吗!!!!!
「已注销」 2004-08-29
  • 打赏
  • 举报
回复
自己再顶一下
「已注销」 2004-08-29
  • 打赏
  • 举报
回复
错误在这里哦
报告错误如下
System.InvalidOperationException: Update requires a valid InsertCommand when passed DataRow collection with new rows.
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)
at TEST001.WinForm1.dataGrid2_Click(Object sender, EventArgs e) in c:\My Documents\Borland Studio Projects\TEST001\WinForm1.cs:line 229
weisai 2004-08-28
  • 打赏
  • 举报
回复
那提示什么错误?用catch捕捉一下
「已注销」 2004-08-28
  • 打赏
  • 举报
回复
自己顶一下!
「已注销」 2004-08-28
  • 打赏
  • 举报
回复
数据库的主键是自动生成的那么我写INSERT语句还要写值吗?不用写吧!!
我都晕了!!
weisai 2004-08-28
  • 打赏
  • 举报
回复
报什么错误,是关于主键方面的吗,如果是,sql语句中应包含主键字段
「已注销」 2004-08-28
  • 打赏
  • 举报
回复
是不是必须要写myAdapter的UPDATE命令??
「已注销」 2004-08-28
  • 打赏
  • 举报
回复
DataRow newRow = this.dataSet1.Tables["bustemp"].NewRow();
DataRow curRow = this.dataSet1.Tables["foodname"].Rows[dataGrid2.CurrentCell.RowNumber];
newRow["tableNo"] = "1";
newRow["foodNo"] = "1";
newRow["foodname1"] = "1";
newRow["foodname2"] = "1";
newRow["quantity"] = "1";
newRow["units"] = "1";
newRow["price"] = "1";
this.dataSet1.Tables[2].Rows.Add(newRow);
myAdapter.Update(dataSet1,"bustemp");//加上它就报错
我现在也觉得add(newRow)加上之后有错。
在这个列子里面,我并没有写SQL。
我怀疑系统会自动生成。
我怎样才能看到系统自动生成的那个SQL?以便我调试?
marvelstack 2004-08-28
  • 打赏
  • 举报
回复
是你的Sql语句有问题,
string updateSql = "update foodsort set sort1='"+
str2+"',sort2='"+str3+"',sort3='"+str4+"' where code='"+str1+"'";

是不是里面有数字形的,
单步调试一下,看看生成的updateSql 字符串是怎样的。
「已注销」 2004-08-28
  • 打赏
  • 举报
回复
有填充
myAdapter = new OleDbDataAdapter( strSql2 ,oleDbConnection1 ) ;
myAdapter.Fill( dataSet1,"bustemp");
this.dataGrid3.DataSource = this.dataSet1.Tables[2];

报告错误如下
System.InvalidOperationException: Update requires a valid InsertCommand when passed DataRow collection with new rows.
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)
at TEST001.WinForm1.dataGrid2_Click(Object sender, EventArgs e) in c:\My Documents\Borland Studio Projects\TEST001\WinForm1.cs:line 229
lay993132001 2004-08-28
  • 打赏
  • 举报
回复
之前DataSet有填充數據嗎?
「已注销」 2004-08-28
  • 打赏
  • 举报
回复
自己顶一下,没有人用这个吗??
「已注销」 2004-08-28
  • 打赏
  • 举报
回复
照做了但是还有问题
string updateSql = "update foodsort set sort1='"+
str2+"',sort2='"+str3+"',sort3='"+str4+"' where code='"+str1+"'";

OleDbCommand myCommand = new OleDbCommand(updateSql,oleDbConnection1);

OleDbAdapter myAdapter = new OleDbAdapter(myCommand );
myAdapter.Update(dataSet1.Tables[0]);//这句报告错误了!
dataSet1.Tables[0].AcceptChanges();

如果注释掉myAdapter.Update(dataSet1.Tables[0]);
程序正常运行但是不更新数据
zhpsam109 2004-08-28
  • 打赏
  • 举报
回复
是要调用AcceptChanges()方法!
marvelstack 2004-08-28
  • 打赏
  • 举报
回复
修改如下。

string updateSql = "update foodsort set sort1='"+
str2+"',sort2='"+str3+"',sort3='"+str4+"' where code='"+str1+"'";

OleDbCommand myCommand = new OleDbCommand(updateSql,oleDbConnection1);

OleDbAdapter myAdapter = new OleDbAdapter(myCommand );
myAdapter.Update(dataSet1.Tables[0]);
dataSet1.Tables[0].AcceptChanges();

111,098

社区成员

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

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

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