谁能告诉我为什么DataGrid中的记录删除不了??昨天搞了一天了
主 题: 谁能告诉我为什么DataGrid中的记录删除不了??昨天搞了一天了
作 者: yong427 (海盗)
等 级: ^^
信 誉 值: 100
所属论坛: .NET技术 C#
问题点数: 100
回复次数: 7
发表时间: 2003-9-28 9:34:34
代码如下:
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//ConnectData 是我自己写的一个对数据库操作的类,与本问题无关
ConnectData cd = new ConnectData();
string strTem = DataGrid1.Items[(int)e.Item.ItemIndex].Cells[0].Text;
string strName = DataGrid1.Items[(int)e.Item.ItemIndex].Cells[1].Text;
if(strName == "")
{
//OperateDataBase是我自定义的一个函数,与该问题无关,是执行SQL语句,对数据库操作
cd.OperateDataBase("delete from members where team_code = '"+strTem+"' and mem_Name =''");
}
else
{
cd.OperateDataBase("delete from members where team_code ='"+strTem+"' and mem_chname ='"+strName+"'");
}
cd.ConnectDataBase("select * from members",ds);
DataGrid1.EditItemIndex = -1;
DataGrid1.DataSource = ds;
DataGrid1.DataBind();
}
现在的问题是,当DataGrid中的某一行的第二列的值为空(即从数据库中读出的这一值为空时),无论怎样执行下面语句都不成功 cd.OperateDataBase("delete from members where team_code ='"+strTem+"' and mem_chname =''");
只是执行了 cd.OperateDataBase("delete from members where team_code ='"+strTem+"' and mem_chname ='"+strName+"'");
我用Label捕获得到strName为空值,但是strName.Length=6
,不知道为什么?
回复人: yong427(海盗) ( 二级(初级)) 信誉:100 2003-9-28 9:51:33 得分:0
自己up
回复人: wjhs(杰借) ( 二级(初级)) 信誉:100 2003-9-28 9:59:04 得分:5
你刷新一下数据源,就能删掉啦。
回复人: realMAX(不让我的眼泪陪我过夜) ( 四级(中级)) 信誉:100 2003-9-28 10:05:03 得分:5
刷新数据源
回复人: soulroom(易水之风) ( 二级(初级)) 信誉:100 2003-9-28 10:07:45 得分:45
不用谢了
回复人: soulroom(易水之风) ( 二级(初级)) 信誉:100 2003-9-28 10:08:57 得分:40
不用谢了
回复人: Soking(Soking) ( 五级(中级)) 信誉:100 2003-9-28 10:09:26 得分:5
如果某一行的第二列的值为空null,那么你生成的删除语句肯定不能满足你的要求,
解决方法是在生成sql以前,叛断列的值是否为空,然后重新生成sql语句
回复人: cxfidc() ( 一级(初级)) 信誉:99 2003-09-28 10:13:00 得分:0
你数据库中的strName的类型是什么的呢??
如果是char(6)则会发生上面的问题.
请确认类型是否为varchar(6)
或者改成if(strName.Trim() == "")
回复人: Maker(向你敬礼!!!) ( 一级(初级)) 信誉:100 2003-09-28 10:19:00 得分:0
up
该问题已经结贴 ,得分记录: wjhs (5)、 realMAX (5)、 soulroom (45)、 soulroom (40)、 Soking (5)、