关于datagrid删除数据的问题
如何实现删除datagrid中的一行数据时,数据库中相应的数据也被删除?
问题点数:40、回复次数:14Top
1 楼njufrog(事业上升期)回复于 2006-06-02 14:02:32 得分 0
就像这样啊
/// <summary>
/// the count of columns
/// </summary>
/// <value>int</value>
public int U_ColumnCount
{
set
{
this.columnCount = value;
}
get
{
return this.columnCount;
}
}Top
2 楼njufrog(事业上升期)回复于 2006-06-02 14:03:49 得分 0
不好意思,回错帖子乐,
这个只要把dataset 用dataadapter update回去就行了吧Top
3 楼qwj103()回复于 2006-06-02 14:13:31 得分 0
不好意思,我用了update,可是数据库中的数据还有Top
4 楼x1234521(Server.net)回复于 2006-06-02 14:18:56 得分 0
删除用UPDATE???
delete from tablaname ....Top
5 楼nikita007(用我的灵魂取悦你,我的宝贝)回复于 2006-06-02 14:19:46 得分 0
private void SetDAdapterCommands_returnrate()
{
sqlConn.Open();
string strQuery = "";
Object S = SUP_NO.Text;
Object sectionid = SECTIONID.Text;
SqlParameter sqlParm = null;
// Create data adapter with select command
strQuery = "SELECT STORE_NO, CAST(FIX_RANGE AS BIT) AS FIX_RANGE, R_FROM, R_TO, CHARGE,LINE_NO FROM A2_SUP_RETURN_RATE WHERE SUP_NO = " + S + " AND SECTIONID = " + sectionid ;
sqlDAdapter_returnrate = new SqlDataAdapter( strQuery, sqlConn );
//Set update command
strQuery = "Update A2_SUP_RETURN_RATE SET " + "STORE_NO = @STORE_NO," + " FIX_RANGE = @FIX_RANGE, " + " R_FROM = @R_FROM, " + " R_TO = @R_TO, " + " CHARGE = @CHARGE " + " WHERE LINE_NO = @LINE_NO AND SUP_NO = " + S;
sqlDAdapter_returnrate.UpdateCommand = new SqlCommand( strQuery, sqlConn );
sqlParm = sqlDAdapter_returnrate.UpdateCommand.Parameters.Add("@STORE_NO", SqlDbType.Int);
sqlParm.SourceColumn = "STORE_NO";
sqlParm = sqlDAdapter_returnrate.UpdateCommand.Parameters.Add("@FIX_RANGE", SqlDbType.Int);
sqlParm.SourceColumn = "FIX_RANGE";
sqlParm = sqlDAdapter_returnrate.UpdateCommand.Parameters.Add("@R_FROM", SqlDbType.Decimal);
sqlParm.SourceColumn = "R_FROM";
sqlParm = sqlDAdapter_returnrate.UpdateCommand.Parameters.Add("@R_TO", SqlDbType.Decimal);
sqlParm.SourceColumn = "R_TO";
sqlParm = sqlDAdapter_returnrate.UpdateCommand.Parameters.Add("@CHARGE", SqlDbType.Decimal);
sqlParm.SourceColumn = "CHARGE";
sqlParm = sqlDAdapter_returnrate.UpdateCommand.Parameters.Add("@LINE_NO", SqlDbType.Int);
sqlParm.SourceColumn = "LINE_NO";
sqlParm.SourceVersion = DataRowVersion.Original;
//MessageBox.Show(strQuery.ToString());
//Set insert command
strQuery = "INSERT INTO A2_SUP_RETURN_RATE ( " + " STORE_NO, " + " FIX_RANGE, " + " R_FROM, " + " R_TO, " + " CHARGE, " + " SUP_NO, " + " SECTIONID) " + " VALUES (@STORE_NO, " + " @FIX_RANGE, " + " @R_FROM, " + " @R_TO, " + " @CHARGE," + S + " , " + sectionid + ")";
sqlDAdapter_returnrate.InsertCommand = new SqlCommand( strQuery, sqlConn );
sqlParm = sqlDAdapter_returnrate.InsertCommand.Parameters.Add("@STORE_NO", SqlDbType.Int);
sqlParm.SourceColumn = "STORE_NO";
sqlParm = sqlDAdapter_returnrate.InsertCommand.Parameters.Add("@FIX_RANGE", SqlDbType.Int);
sqlParm.SourceColumn = "FIX_RANGE";
sqlParm = sqlDAdapter_returnrate.InsertCommand.Parameters.Add("@R_FROM", SqlDbType.Decimal);
sqlParm.SourceColumn = "R_FROM";
sqlParm = sqlDAdapter_returnrate.InsertCommand.Parameters.Add("@R_TO", SqlDbType.Decimal);
sqlParm.SourceColumn = "R_TO";
sqlParm = sqlDAdapter_returnrate.InsertCommand.Parameters.Add("@CHARGE", SqlDbType.Decimal);
sqlParm.SourceColumn = "CHARGE";
sqlParm.SourceVersion = DataRowVersion.Current;
//MessageBox.Show(strQuery.ToString());
//Set delete command
strQuery = "DELETE FROM A2_SUP_RETURN_RATE " + " WHERE LINE_NO = @LINE_NO AND SECTIONID = " + sectionid + " AND SUP_NO = " + S ;
sqlDAdapter_returnrate.DeleteCommand = new SqlCommand( strQuery, sqlConn );
sqlParm = sqlDAdapter_returnrate.DeleteCommand.Parameters.Add("@LINE_NO", SqlDbType.Int);
sqlParm.SourceColumn = "LINE_NO";
sqlParm.SourceVersion = DataRowVersion.Original;
//MessageBox.Show(strQuery.ToString());
}
Top
6 楼YYKXQ(异域狂想曲)回复于 2006-06-02 14:34:14 得分 0
你是WinForm还是WebForm,如果是WinForm就在你的调用
sqlDataAdapter1.Update(..);之前加一条下面的语句:
SqlCommandBuilder scb=new SqlCommandBuilder(sqlDataAdapter1);
这条语句的作用是为你后面的更新操作生成Sql语句
Top
7 楼qwj103()回复于 2006-06-02 14:42:53 得分 0
我做的winform,加了SqlCommandBuilder scb=new SqlCommandBuilder(sqlDataAdapter1);之后,依然是只删除了datagrid中的数据,而数据库中相应的数据还是存在Top
8 楼zhzuo(秋枫)回复于 2006-06-02 22:39:20 得分 0
ADO.NET中的多数据表操作浅析
http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspxTop
9 楼CSDNATM(飞行员,麻烦帮开个窗让我透透气)回复于 2006-06-02 23:08:03 得分 0
你在删除datagrid后,查看一下datatable中的状态有没有变化
如果没有变化就是datagrid的删除没有反应到datatable中去
找出原因所在Top
10 楼ReViSion(和尚)回复于 2006-06-02 23:13:54 得分 0
哪要看你想怎么删除,
你可以自己写语句或是
用适配器的update,当然你要设置好了才可以Top
11 楼goldanycom()回复于 2006-06-03 00:35:20 得分 0
.net技术群-4号
4号群已经开放:23266396
请大家赶快加入!Top
12 楼NogamesNow()回复于 2006-06-03 21:35:01 得分 0
mark,其实这些例子不难,很多地方都有的。不过比较佩服秋枫Top
13 楼huangbznet(每天对着......)回复于 2006-06-03 23:02:25 得分 0
winform没搞过,帮顶一下吧Top
14 楼YYKXQ(异域狂想曲)回复于 2006-06-05 09:20:58 得分 0
搂主,你加了SqlCommondBuider后还是不行,那么你就要检查一下你表的结构了,是不是缺少主键,或者是有外键关联都不行。如果没有外键,你添加主键后,使用SqlCommandBuilder,就可以调用dataadapter.Update()更新数据源Top




