DataSet 批量更新数据,出现的问题,在线等!!!

grant_zgx 2007-07-19 09:10:51
以下代码在运行时,为什么不能更新数据库中的数据,请问是哪出了问题:
SqlConnection conn=new SqlConnection(GetSqlConnectionString(m_db.Text));
SqlCommand cmd=new SqlCommand("select userID,isnull(password,'') as passwrod from admUser",conn);
SqlDataAdapter da=new SqlDataAdapter();

da.SelectCommand=cmd;
DataSet ds=new DataSet();
if (conn.State==ConnectionState.Closed) conn.Open();
da.Fill(ds);

for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
ds.Tables[0].Rows[i].BeginEdit();
ds.Tables[0].Rows[i][1] ="";
ds.Tables[0].Rows[i].EndEdit();
}

cmd=new SqlCommand("update admUser set password=@password where userID=@userID",conn);
cmd.Parameters.Add("@userID",SqlDbType.Int,4,"id");
cmd.Parameters.Add("@password",SqlDbType.VarChar,30,"password");
da.UpdateCommand=cmd;
ds.AcceptChanges();
da.Update(ds.Tables[0]);
conn.Close();
...全文
242 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
grant_zgx 2007-07-19
  • 打赏
  • 举报
回复
去掉ds.AcceptChanges()后运行时出现"系统错误"
grant_zgx 2007-07-19
  • 打赏
  • 举报
回复
我掉换后,出现系统错误
ERPCoder 2007-07-19
  • 打赏
  • 举报
回复

AcceptChanges方法会将Modified的行改为Unchanged状态,所以再调用Update不会更新到数据库.
ERPCoder 2007-07-19
  • 打赏
  • 举报
回复

去掉ds.AcceptChanges()这句代码...

GXY2005 2007-07-19
  • 打赏
  • 举报
回复
不积跬步,无以至千里;不积小流,无以成江海
MicroSoftor 2007-07-19
  • 打赏
  • 举报
回复
去掉此句应该OK
ds.AcceptChanges();
tepc2000 2007-07-19
  • 打赏
  • 举报
回复
up
北京的雾霾天 2007-07-19
  • 打赏
  • 举报
回复
首先
这两句反了:
ds.AcceptChanges();
da.Update(ds.Tables[0]);

改为这样:
da.Update(ds.Tables[0]);
ds.AcceptChanges();


再有,你的数据库表是否有主键!
BearRui 2007-07-19
  • 打赏
  • 举报
回复
去掉ds.AcceptChanges();
yiwindlele 2007-07-19
  • 打赏
  • 举报
回复
ds.AcceptChanges();
da.Update(ds.Tables[0]);

先update,再acceptchanges
grant_zgx 2007-07-19
  • 打赏
  • 举报
回复
按照要求去掉ds.AcceptChanges(),在执行时提示"系统错误"

111,125

社区成员

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

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

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