为什么注释掉这句话,效果还是一样的,那放着干嘛?

qiduo221 2009-07-19 03:04:39
网页文件我就不写了,主要是下面的按钮事件

protected void Button3_Click(object sender, EventArgs e)
{
string connectionString = "server=localhost;database=sample;uid=sa;pwd=sa";
SqlConnection mySqlConnection = new SqlConnection(connectionString);
DataSet ds;
try
{
mySqlConnection.Open();
ds = new DataSet();
ds.ReadXml(Server.MapPath("qiuyuan.xml"));
DataRow dr = ds.Tables[0].NewRow();
dr["uid"] = 7;
dr["uname"] = "法布雷加斯";
dr["upassword"] = "fbljs";
dr["description"] = "西班牙中场领袖";
dr["nation"] = "西班牙";
ds.Tables[0].Rows.Add(dr);
ds.AcceptChanges(); //.................................................就是这句话
ds.WriteXml(Server.MapPath("qiuyuanUPDATE.xml"));
Response.Write(" <script Language='JavaScript'>");
Response.Write("alert('XML数据增加成功!');");
Response.Write(" </script>");
}
catch (SqlException se)
{
Response.Write(se.Message.ToString());
}
finally
{
mySqlConnection.Close();
}
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
金鱼我在这 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yfqvip 的回复:]
若不调用AcceptChanges,则表示更新数据库中的所有项;调用他,则只更新在调用后所设置的数据项。

[/Quote]

acceptChanges 不是跟新dataset 吗?怎么会影响到数据库?跟新到数据库用update()方法啊?
满衣兄 2009-07-19
  • 打赏
  • 举报
回复
若不调用AcceptChanges,则表示更新数据库中的所有项;调用他,则只更新在调用后所设置的数据项。
qiduo221 2009-07-19
  • 打赏
  • 举报
回复
是啊,可是我把AcceptChanges注释掉,那么就是说没有更新DATASET喽?
但是注释掉输出来,数据多了一条啊,它更新了呀
满衣兄 2009-07-19
  • 打赏
  • 举报
回复
AcceptChanges用于对DataSet的更新,也就是你这里的DataSet里内容新增加了一条。而从你这个代码来看是没有立即在页面上显示的(或者在其它地方重新加载了xml),所以你没有看到效果。
例如DataSet里原来有2条数据,你新增1条数据之后调用AcceptChanges方法,这个时候DataSet里就变成3条数据。
qiduo221 2009-07-19
  • 打赏
  • 举报
回复
我把它注释掉后,要加的内容还是加在XML文件中了啊qiuyuanUPDATE.xml比qiuyuan.xml多了“法布雷加斯”啊
怎么回事?
不更新??
accpyy 2009-07-19
  • 打赏
  • 举报
回复
注释掉你的数据就不刷新了
qiduo221 2009-07-19
  • 打赏
  • 举报
回复
但问题是,去掉核没去掉,效果一样啊?
怎么回事?
wuyq11 2009-07-19
  • 打赏
  • 举报
回复
主要使用在DbDataAdapter.Update事件中
满衣兄 2009-07-19
  • 打赏
  • 举报
回复
AcceptChanges表示立即更新,如果去掉,编辑的数据不会生效。
MSDN描述:
DataTable.AcceptChanges方法
提交自上次调用 AcceptChanges 以来对该表进行的所有更改。调用 AcceptChanges 时,任何仍处于编辑模式的 DataRow 对象将成功结束其编辑。DataRowState 也会随之更改:所有状态为 Added 和 Modified 的行的状态都变为 Unchanged;状态为 Deleted 的行则被移除。
在您尝试使用 DbDataAdapter.Update 方法更新 DataSet 之后,通常会对 DataTable 调用 AcceptChanges 方法。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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