注册 登录
编程论坛 ASP.NET技术论坛

[求助]DataGrid中删除数据问题

xinghun868 发布于 2007-10-23 23:29, 1098 次点击
只有本站会员才能查看附件,请 登录

我想点击一下前面的删除按纽,然后删除数据,下面是我写的代码:
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlConnection myConn=new SqlConnection("user id=sa;data source=localhost;initial catalog=hisbook;password=");
SqlCommand myComm=new SqlCommand("delete from 登陆资料 where name=@name",myConn);
myComm.Parameters.Add("@name",SqlDbType.Char);
myComm.Parameters["@name"].Value=DataGrid1.DataKeys[e.Item.ItemIndex];
myConn.Open();
try
{
myComm.ExecuteNonQuery();
Label2.Text="数据删除成功";
}
catch(SqlException){
Label2.Text="数据删除失败!请检查连接";
}
myConn.Close();
GridDataBind();
}

我运行,然后系统提示“ myComm.Parameters["@name"].Value=DataGrid1.DataKeys[e.Item.ItemIndex];
”这个语句出错啊!
请问各位大侠怎么解决???
11 回复
#2
jxnuwy042007-10-24 00:16
提示什么错误?
我猜可能是因为没有设置DataGrid的主键,还有:myComm.Parameters["@name"].Value=DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
#3
垃圾的沉默2007-10-24 10:26
你应该没有把ID的值传过去..找不到主键的值,,
#4
bygg2007-10-24 12:48
你的DataGrid1有没有设置Key??
#5
xinghun8682007-10-24 14:58

我没设置主键啊!系统提示如下错误:

只有本站会员才能查看附件,请 登录

请问各位大侠该如何解决!谢谢
#6
bygg2007-10-24 15:16
没设置当然就不能这么用啦?你在属性窗口中设置一下叫 ...Keys的属性值
#7
xinghun8682007-10-24 15:28

我在属性窗口中找不到设置“ ...Keys”属性值啊???
我的数据库里面是没设主键的啊,
请问楼上的应该怎样做???
谢谢

#8
垃圾的沉默2007-10-24 15:32
你数据库里有没有唯一的识别ID啊???
如果没有就设吧
#9
abcfei2007-10-25 11:56
设个主键就好了。
#10
jxnuwy042007-10-25 13:26

设置DataGrid的主键:dataGrid1.DataKey="表中的主键";

#11
s6gy2007-10-25 15:02
this.GridView1.DataKeyNames = new string[] { "id" };
主件是这样的才对


string id= this.GridView1.DataKeys[e.RowIndex].Value.ToString();
这个是接受主件
#12
chashen88882007-10-29 19:05
DataGrid上设置DataKeyField="id"
1