C#数据库更新问题

我用的是DataAdapter来更新数据库,问题是数据改变后,并没有更新到数据库中去,请问主要是什么原因?如何解决?privatevoidbutton1_Click(ob... 我用的是DataAdapter来更新数据库,问题是数据改变后,并没有更新到数据库中去,请问主要是什么原因?如何解决?

private void button1_Click(object sender, EventArgs e)
{

SqlConnection sqlcon=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\web\apc1\App_Data\APCdatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
DataSet ds=new DataSet();
sqlcon.Open();
SqlDataAdapter sqld=new SqlDataAdapter("select * from tbl_paper",sqlcon);
sqld.Fill(ds,"tbl_paper");
SqlCommandBuilder sqlcmdb=new SqlCommandBuilder(sqld);
ds.Tables["tbl_paper"].Rows[0][2]="good";
ds.Tables["tbl_paper"].AcceptChanges();
sqld.Update(ds,"tbl_paper");
sqld.Close();
}
展开
 我来答
明桖瑶gr
2009-02-26 · TA获得超过1205个赞
知道小有建树答主
回答量:397
采纳率:100%
帮助的人:621万
展开全部
去掉以下这行代码即可:
ds.Tables["tbl_paper"].AcceptChanges();

原因如下:
当修改数据集中的数据时,会在被修改的记录上增加一个标志,表示当前数据集中某一条记录的状态(如:已修改、已删除、已添加等),调用 Update 方法时 DataAdapter 就是根据这些标志更新数据库。如果调用了 AcceptChanges 方法这些标志将被重置为“未修改”状态,所以 DataAdapter 认为没有任何数据被修改,因此没有发生更新数据库的情形。
百度网友0de943b2e
2009-02-26 · 超过20用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:0
展开全部
1.检查button1_Click是否回传数据,有的静态刷新技术数据存在不回传的情况。
2.sqld 能够既用来读数据,又用来更新数据我不知道,但是很多读的数据只是读入了内存,仔细查查Update函数,是操作数据库内的表么?我是读用一个按钮,提交再用一个。如果你一定要读这些数据,可以写到load函数里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
307482311
2009-02-27 · TA获得超过1471个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:311万
展开全部
没可能的,你没有对数据库执行修改命令是不可能更新数据的。因为Grideview里面的表是虚拟的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuang0594
2009-02-27 · TA获得超过107个赞
知道答主
回答量:105
采纳率:0%
帮助的人:79.1万
展开全部
二楼的好像说的有理,但MSDN中有如下说法:
DataTable.AcceptChanges方法
提交自上次调用 AcceptChanges 以来对该表进行的所有更改。调用 AcceptChanges 时,任何仍处于编辑模式的 DataRow 对象将成功结束其编辑。DataRowState 也会随之更改:所有状态为 Added 和 Modified 的行的状态都变为 Unchanged;状态为 Deleted 的行则被移除。
在您尝试使用 DbDataAdapter.Update 方法更新 DataSet 之后,通常会对 DataTable 调用 AcceptChanges 方法。

DataTable.RejectChanges方法
回滚自该表加载以来或上次调用 AcceptChanges 以来对该表进行的所有更改。
调用 RejectChanges 时,任何仍处于编辑模式的 DataRow 对象将取消其编辑。新行被移除。DataRowState 设置为 Modified 或 Deleted 的行返回到其初始状态。

你也可以不用DataAdapter来更新数据库,我经常直接在SQL语句里直接用Update命令,也很好用。

参考资料: http://msdn.microsoft.com/zh-cn/library/system.data.datatable.acceptchanges(VS.80).aspx

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式