当前位置:编程学习 > C#/ASP.NET >>

在线等,急,请各位大哥帮忙一下

public void Del_Msg(object src,DataGridCommandEventArgs e)
{
ViewState["id"]=this.DG_VType.DataKeys[e.Item.ItemIndex];
if(OverAll.ReadTable.Opera_cmd("delete  from NClass where NClassID="+ViewState["id"].ToString())!=-1)
{
Response.Write("<Script>");
Response.Write("alert('删除完成!');");
Response.Write("</Script>");
this.TxtReset();
}
DisplayPage();
View_Musics();


程序之中为什么if(OverAll.ReadTable.Opera_cmd("delete  from NClass where NClassID="+ViewState["id"].ToString())!=-1)为什么要多出())!=-1这个条件。。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- OverAll.ReadTable.Opera_cmd   这个是什么呢 --------------------编程问答-------------------- 我怎么感觉你的代码有问题呢
首先 “-1"是int型
而ToString(),硬是转换成了String型,Int型和String型不能比较的啊。。

坐等大家的见解 --------------------编程问答--------------------
那看你Opera_cmd方法里返回值的问题了。。。

如果你方法里写的是成功..返回大于等于0的数。。。

那这里用-1判断意思就是。。。删除成功才走里面的代码 --------------------编程问答-------------------- 应该是Opera_cmd这个方法返回一个数值,表示操作是否成功吧 --------------------编程问答-------------------- ("delete from NClass where NClassID="+ViewState["id"].ToString())
ViewState["id"].ToString()
!=-1判断是否删除.




--------------------编程问答--------------------
引用 3 楼 ahsun1987 的回复:
我怎么感觉你的代码有问题呢
首先 “-1"是int型
而ToString(),硬是转换成了String型,Int型和String型不能比较的啊。。

坐等大家的见解


刚才没注意,你是根据查询条件啊,那样就对了,OverAll.ReadTable.Opera_cmd必定是Int型。
!=-1只是一个条件啊,如果符合条件向下执行。 --------------------编程问答--------------------
引用楼主 chenchenqi1234 的回复:
public void Del_Msg(object src,DataGridCommandEventArgs e)
{
ViewState["id"]=this.DG_VType.DataKeys[e.Item.ItemIndex];
if(OverAll.ReadTable.Opera_cmd("delete from NClass where NClassID="+ViewState[……


OverAll.ReadTable.Opera_cmd()应该是一个自己封装的类的方法,用来执行sql语句的。
执行完毕后,返回受影响的行数
如果执行失败,那么返回值肯定是-1,执行成功返回受影响的行数。比如你删除了一条数据,那么返回值应该是1

提示不等以-1(!=-1),意思是执行命令成功了


结贴给分吧呵呵,100%正确答案 --------------------编程问答--------------------
引用楼主 chenchenqi1234 的回复:
public void Del_Msg(object src,DataGridCommandEventArgs e)
{
ViewState["id"]=this.DG_VType.DataKeys[e.Item.ItemIndex];
if(OverAll.ReadTable.Opera_cmd("delete from NClass where NClassID="+ViewState[……


你在VS中打开封装的那个类,类名应该叫OverAll.cs,找到Opera_cmd这个命令,看看是否使用的是如下代码:
int 返回值=cmd.ExeCuteNonQuery()

程序的返回值就是受影响的行数,如果执行失败那么返回值是-1

ExecuteNonQuery方法是用来执行insert、delete、update语句的,由于这些语句执行后只有一个结果:“影响了**行”,所以ExecuteNonQuery方法返回的是影响的行数(int)。 --------------------编程问答-------------------- 所以,你上面的代码的意思是:从Nclass表中删除NclassID是ViewState["id"]的这一行数据,如果删除成功(即返回值不是-1,你可以修改为==1试试看,也能正确运行),那么弹出一个JS提示框提示“删除完成!”
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,