| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3206 人关注过本帖
标题:GridView中怎样删除数据库中的数据?急啊!
只看楼主 加入收藏
stonefang
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2007-3-20
收藏
 问题点数:0 回复次数:12 
GridView中怎样删除数据库中的数据?急啊!
我写了下面的代码,但不能实现功能,太忙改一下,小弟急啊.
SqlConnection con = DB.CreateConn();
st_sqlstr = "delete from Teacher where Teaher_id='"+this.Gv_teach.DataKeys[e.RowIndex].Value+"'";
con.Open();
SqlCommand cmd = new SqlCommand(st_sqlstr,con);
cmd.ExecuteNonQuery();
Response.Write("<script language='javascript'>alert('删除成功')</script>");
St_BindGridView();
搜索更多相关主题的帖子: 数据库 GridView 删除 
2007-05-18 23:14
guming
Rank: 4
等 级:业余侠客
威 望:5
帖 子:329
专家分:277
注 册:2006-11-9
收藏
得分:0 

SqlConnection con = DB.CreateConn();
st_sqlstr = "delete from Teacher where Teaher_id='"+this.Gv_teach.DataKeys[(int)e.RowIndex].Value+"'";
con.Open();
SqlCommand cmd = new SqlCommand(st_sqlstr,con);
cmd.ExecuteNonQuery();
St_BindGridView();//先邦定再显示对话框
Response.Write("<script language='javascript'>alert('删除成功')</script>");

还有:要将Gv_teach表的初始邦定放在
if(!IsPostBack)
{
//邦定到数据
}
中。。。。。。。。
你再试试吧。。。


不想停留。。。
2007-05-19 01:33
tel1982
Rank: 3Rank: 3
来 自:水星
等 级:新手上路
威 望:8
帖 子:852
专家分:0
注 册:2006-10-21
收藏
得分:0 
你在绑定中写这一句了吗?this.你的gridviewID.datakeyname="绑定的ID";

Face up to life with smiles no matter what happens
2007-05-20 11:31
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
这什么要先邦定再显示对话框?

我觉得应该先显示对话框再邦定

2007-05-20 11:55
stonefang
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2007-3-20
收藏
得分:0 

我按你们的提示改写的代码,在执行的时候提示是数据库的用户代码未处理 System.Data.SqlClient.SqlException
Message="DELETE 语句与 COLUMN REFERENCE 约束 'FK_Class_Teacher' 冲突。该冲突发生于数据库 'ST_DataBase',表 'Class', column 'Class_teacher_id'。\r\n语句已终止。"请问在对表中有外键的时候怎么删除数据?
protected void Gv_teach_RowDeleting(object sender, GridViewDeleteEventArgs e)
{//删除数据
SqlConnection con = DB.CreateConn();
con.Open();
string sqlstr = "delete from Teacher where Teacher_id='"+Gv_teach.DataKeys[e.RowIndex].Value.ToString()+"'";
SqlCommand sqlcom = new SqlCommand(sqlstr, con);

sqlcom.ExecuteNonQuery();
try
{
sqlcom.ExecuteNonQuery();
Lbl_note.Text = "删除成功";

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


我就是我! 从那跌到从那爬起! E-mail:fangguang2008@
2007-05-20 22:21
stonefang
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2007-3-20
收藏
得分:0 
完整的错误提示是:
用户代码未处理 System.Data.SqlClient.SqlException
Message="DELETE 语句与 COLUMN REFERENCE 约束 'FK_Class_Teacher' 冲突。该冲突发生于数据库 'ST_DataBase',表 'Class', column 'Class_teacher_id'。\r\n语句已终止。"
Source=".Net SqlClient Data Provider"
ErrorCode=-2146232060
Class=16
LineNumber=1
Number=547
Procedure=""
Server="127.0.0.1"
State=0
StackTrace:
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
在 St_Teacher.Gv_teach_RowDeleting(Object sender, GridViewDeleteEventArgs e) 位置 f:\bysj2\St_teacher.aspx.cs:行号 68
在 System.Web.UI.WebControls.GridView.OnRowDeleting(GridViewDeleteEventArgs e)
在 System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex)
在 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup)
在 System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

我就是我! 从那跌到从那爬起! E-mail:fangguang2008@
2007-05-20 22:21
tel1982
Rank: 3Rank: 3
来 自:水星
等 级:新手上路
威 望:8
帖 子:852
专家分:0
注 册:2006-10-21
收藏
得分:0 

给你一点参考代码:
//先绑定
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-05-20 22:44
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
为什么不把数据库的连接写到一个统一的地方呢?如果数据库需要修改时,,,得改多少个地方?

飘过~~
2007-05-21 09:19
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
Message="DELETE 语句与 COLUMN REFERENCE 约束 'FK_Class_Teacher' 冲突。该冲突发生于数据库 'ST_DataBase',表 'Class', column 'Class_teacher_id'。

是不是要把对应的数据也同时删除?
不过应该不是的呀...

这样的约束我没用过,不清楚,楼主为何不把约束去掉?

2007-05-21 09:25
stonefang
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2007-3-20
收藏
得分:0 
我是要删除表中的一条数据,其中的一个字段是另外一张表的主键,没有约束也会出错,不知道怎么办?

还有8楼的那位老兄,不知道你是说我的还是说7楼的?我的数据库连接是有类DB写的.我只会用那种方法.请你指点哈还可以怎么写,行更好?

我就是我! 从那跌到从那爬起! E-mail:fangguang2008@
2007-05-21 15:46
快速回复:GridView中怎样删除数据库中的数据?急啊!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019568 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved