| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
学习型 ASP/PHP/ASP.NET 主机 35元/年全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
赛孚耐:软件保护加密专家身份认证令牌USB KEY  
共有 900 人关注过本帖
标题:GridView删除问题
收藏  订阅  推荐  打印 
stonefang
Rank: 2
等级:注册会员
帖子:163
积分:1728
注册:2007-3-20
GridView删除问题

我在执行下面的delete操作时出现图片上的错误,请各位指点指点.
protected void Gv_userlist_RowDeleting(object sender, GridViewDeleteEventArgs e)
{//删除
string st_sqlstr = "delete from Users where User_id=@userid";
SqlCommand st_comm = new SqlCommand(st_sqlstr, conn);
st_comm.Parameters.Add(new SqlParameter("@userid", SqlDbType.VarChar, 50));
//st_comm.Parameters["@userid"].Value = st_dtg_userinformation.DataKeys[(int)e.Item.ItemIndex];
//st_comm.Parameters["@userid"].Value = Gv_userlist.DataKeys[(int)e.RowIndex].ToString();//debug
st_comm.Parameters["@userid"].Value=Gv_userlist.DataKeys[(int)e.RowIndex].Values[0].ToString();
st_comm.Connection.Open();
try
{
st_comm.ExecuteNonQuery();
Lbl_note.Text = "删除成功";

}
catch (SqlException)
{
Lbl_note.Text = "删除失败";
Lbl_note.Style["color"] = "red";
}
st_comm.Connection.Close();
St_BindGridView();
}


附件: 只有本站会员才能下载或查看附件,请您 登录注册
搜索更多相关主题的帖子: GridView  userid  comm  delete  
2007-5-27 22:40
rainic
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:27
帖子:2372
积分:23926
注册:2005-8-9

DataKeys没设好...

2007-5-28 09:16
GrimFish
Rank: 2
等级:注册会员
威望:1
帖子:167
积分:1770
注册:2007-5-28

LS正解,DataKeys没有设置。
2007-5-28 09:23
stonefang
Rank: 2
等级:注册会员
帖子:163
积分:1728
注册:2007-3-20

楼上的哥们,能帮我写一个代码吗?
你们说的是什么呀?那不是评论而已吗?

我就是我! 从那跌到从那爬起! E-mail:fangguang2008@163.com
2007-5-28 21:04
GrimFish
Rank: 2
等级:注册会员
威望:1
帖子:167
积分:1770
注册:2007-5-28

DataKeys不知道吗?

右键单击你的GridView控件--属性。然后在控件属性栏里找到DataKey,设置你数据库表对应的主键字段,比如是ID.然后确定。
2007-5-28 21:42
tel1982
Rank: 4
来自:水星
等级:高级会员
威望:8
帖子:853
积分:8638
注册:2006-10-21

这是我做的,你看一下:
private void bindTogvQz()
{
string strsql = ConfigurationManager.ConnectionStrings["qzsql"].ConnectionString;
SqlConnection con = new SqlConnection(strsql);
con.Open();
string selectstr = "select * from qztable";
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand(selectstr,con);
DataSet ds = new DataSet();
sda.Fill(ds,"qzList");
string[] qz = new string[] {"qzID"};
this.gvQz.DataKeyNames = qz;
//this.gvQz.DataKeyNames = "qzID";
this.gvQz.DataSource = ds.Tables["qzList"].DefaultView;
this.gvQz.DataBind();
sda.Dispose();
con.Close();
con.Dispose();
}
==============
protected void gvQz_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//try
//{
string strID = this.gvQz.DataKeys[e.RowIndex].Value.ToString();
string strsql = ConfigurationManager.ConnectionStrings["qzsql"].ConnectionString;
SqlConnection con = new SqlConnection(strsql);
con.Open();
string deletestr = "delete from qztable where qzID=" + strID;
SqlCommand cmd = new SqlCommand(deletestr, con);
cmd.ExecuteNonQuery();
cmd.Dispose();
con.Close();
con.Dispose();
this.bindTogvQz();
//}
//catch
//{
// Response.Write("有点错误!");
//}
}
上面的是绑定,下面的是删除。

Face up to life with smiles no matter what happens
2007-5-29 08:40
bygg
Rank: 12Rank: 12Rank: 12
来自:乖乖的心中
等级:版主
威望:186
帖子:10235
积分:100937
注册:2006-10-23

将DataKeyNames 属性值设成表中的主键..

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@yahoo.com.cn
2007-5-29 09:20
stonefang
Rank: 2
等级:注册会员
帖子:163
积分:1728
注册:2007-3-20

SqlConnection con = DB.CreateConn();
con.Open();

string sqlstr0 = "delete from Teacher_course where Teacher_course.Teacher_id='" + Gv_teach.DataKeys[e.RowIndex].Value.ToString() + "'";
string sqlstr1 = "delete from Teacher where Teacher_id='"+Gv_teach.DataKeys[e.RowIndex].Value.ToString()+"'";
SqlCommand sqlcom0 = new SqlCommand(sqlstr0, con);
sqlcom0.ExecuteNonQuery();

SqlCommand sqlcom1 = new SqlCommand(sqlstr1, con);
sqlcom1.ExecuteNonQuery();
try
{
sqlcom1.ExecuteNonQuery();
Lbl_note.Text = "删除成功";
Lbl_note.Style["color"]="green";

}
catch (SqlException)
{
Lbl_note.Text = "删除失败";
Lbl_note.Style["color"] = "red";
}
sqlcom0.Connection.Close();
sqlcom1.Connection.Close();
St_BindGridView();
这个程序在删除时没有执行try语句,请问怎么改?


我就是我! 从那跌到从那爬起! E-mail:fangguang2008@163.com
2007-5-30 12:40
rainic
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:27
帖子:2372
积分:23926
注册:2005-8-9

SqlCommand sqlcom1 = new SqlCommand(sqlstr1, con);
sqlcom1.ExecuteNonQuery(); 因为执行到这就出错了... 把这句去掉
try
{
sqlcom1.ExecuteNonQuery();
Lbl_note.Text = "删除成功";

2007-5-30 14:29
stonefang
Rank: 2
等级:注册会员
帖子:163
积分:1728
注册:2007-3-20

protected void Gv_teach_RowDeleting(object sender, GridViewDeleteEventArgs e)
{//删除数据
SqlConnection con = DB.CreateConn();
con.Open();
//先删除子表
string sqlstr0 = "delete from Teacher_course where Teacher_course.Teacher_id='" + Gv_teach.DataKeys[e.RowIndex].Value.ToString() + "'";
//删除主表
string sqlstr1 = "delete from Teacher where Teacher_id='" + Gv_teach.DataKeys[e.RowIndex].Value.ToString() + "'";
SqlCommand sqlcom = new SqlCommand(sqlstr0, con);
sqlcom.ExecuteNonQuery();
sqlcom = new SqlCommand(sqlstr1,con);
try
{
sqlcom.ExecuteNonQuery();
Lbl_note.Text = "删除成功";
Lbl_note.Style["color"] = "green";

}
catch (SqlException)
{
Lbl_note.Text = "删除失败";
Lbl_note.Style["color"] = "red";
}
sqlcom.Connection.Close();
St_BindGridView();
}
删除数据还是不能显示"删除成功"和删除失败",怎么做呢?帮帮忙啊!我不行了.


我就是我! 从那跌到从那爬起! E-mail:fangguang2008@163.com
2007-5-30 22:27
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.147995 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved