修改问题给50分

allenzhang0603 2007-04-28 05:03:03
要在DataGrid的数据里面修改某个值,然后点击刷新来更新,老是提示我需要参数@diskid,下面是代码:
string updstr="update DiskInfo set id=@id,DiskID=@diskid,type=@type,name=@name,diskcount=@count,movietype=@mtype,director=@director,player=@player,movietime=@time where diskid=@diskid";
dataAdapter.UpdateCommand=new SqlCommand(updstr,con);

para=dataAdapter.UpdateCommand.Parameters.Add("@id",SqlDbType.Int,4);
para.SourceColumn="id";
para.SourceVersion=DataRowVersion.Current;
.....

try
{

if(dataset.HasChanges())
{

dataAdapter.Update(dataset,"DiskInfo");

MessageBox.Show("数据更新成功");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
字段比较多!!
谢谢!!
...全文
354 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxs12000 2012-07-20
  • 打赏
  • 举报
回复
update DiskInfo set id=@id,type=@type,name=@name,diskcount=@count,movietype=@mtype,director=@director,player=@player,movietime=@time where diskid=@diskid 其实里面的那个参数可以不要了 既然即把diskid单做了条件 那你有为啥去修改 去掉在试试
  • 打赏
  • 举报
回复
你传2次进去了么
  • 打赏
  • 举报
回复
好好检查下你的SQL语句
你看看、有两处地方用了同一个参数了DiskID=@diskid 跟 where diskid=@diskid
H_Gragon 2012-06-25
  • 打赏
  • 举报
回复
楼主DataGrid的主键DataKeyNames是不是没有设置,所以找不到你要修改的行id(即你所说的@diskid)
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
其他的参数我都写了,只是给省略了,要不太多了
pengliangsheng999(彭良)
那我应该怎末写,能让系统知道阿!
[/Quote]
这个时候就不要勤俭节约了,还是全贴出来让大家帮你看看吧
tyg111 2010-07-19
  • 打赏
  • 举报
回复
顶一下
bwangel 2007-05-30
  • 打赏
  • 举报
回复
JF
allenzhang0603 2007-05-29
  • 打赏
  • 举报
回复
为什末id=4?
liubin911 2007-05-24
  • 打赏
  • 举报
回复
para=dataAdapter.UpdateCommand.Parameters.Add("@id",SqlDbType.Int,4);
para.SourceColumn="id";
para.SourceVersion=DataRowVersion.Current;
............

写反了,而且没赋值

para=new SqlParameter("@id",SqlDbType.Int,4);
para.Value=4;//赋值
dataAdapter.UpdateCommand.Parameters.Add(para);
......//以下照样
ann0915 2007-05-15
  • 打赏
  • 举报
回复
mark
allenzhang0603 2007-05-08
  • 打赏
  • 举报
回复
其他的参数我都写了,只是给省略了,要不太多了
pengliangsheng999(彭良)
那我应该怎末写,能让系统知道阿!
ddjusdsau 2007-05-06
  • 打赏
  • 举报
回复
string updstr="update DiskInfo set id=@id,DiskID=@diskid,type=@type,name=@name,diskcount=@count,movietype=@mtype,director=@director,player=@player,movietime=@time where diskid=@diskid";
dataAdapter.UpdateCommand=new SqlCommand(updstr,con);

para=dataAdapter.UpdateCommand.Parameters.Add("@id",SqlDbType.Int,4);

只给了一个参数??其他参数哪里给的?
bingchener 2007-05-02
  • 打赏
  • 举报
回复
同意楼上
pengliangsheng999 2007-04-30
  • 打赏
  • 举报
回复
where diskid=@diskid";
提示没错啊,这样系统不知道改哪一行。
你写了修改条件,又没有条件给他怎么行呢?
建议用个变量把要修改的ID存起来。然后才能改吧。
bbdog 2007-04-29
  • 打赏
  • 举报
回复
para=dataAdapter.UpdateCommand.Parameters.Add("@id",SqlDbType.Int,4);
para.SourceColumn="id";
para.SourceVersion=DataRowVersion.Current;
.....
===============
.....这里写的是什么啊?参数都给全了吗?

1,979

社区成员

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

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