代码如下:CS里面的
public static int IsNo(string strSql)
{
            SqlConnection sqlcon = connection.getConnection();
SqlCommand myCm = new SqlCommand(strSql,sqlcon);
try
{
sqlcon.Open();
SqlDataReader dr = myCm.ExecuteReader();
if(dr.Read()==true)
{
return 1;
}
else
{
return 0;
}
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
sqlcon.Close();
myCm.Dispose();
}
}
这是在aspx.cs里面调用   protected void Button2_Click(object sender, EventArgs e)
    {
        string ename = TextBox1.Text.ToString();
        if (Code.Base.IsNo("select * from Businesser where EName = '" + ename + "'") == 1)
        {       
            Page.RegisterStartupScript("", "<script>alert('该英文名称,已经有人注册!请换一个!')</script>");
            Page.RegisterStartupScript("select", "<script>document.all('TextBox16').select()</script>");
        }
        else
        {
            Page.RegisterStartupScript("", "<script>alert('恭喜你,英文名称有效,请继续注册!')</script>");
        }
    }TextBox1.Text填入值和数据库里面的值是一样  为什么它老实会出现“恭喜你,英文名称有效,请继续注册!”  应该是这样的"该英文名称,已经有人注册!请换一个"
请问为什么会出现这样啊,,如果正确咯就结帖

解决方案 »

  1.   

    dr.Read()是下一条记录,你只有一个记录,当然下一个没有了,所以IsNo返回false
    你应该判断dr是不是null值
      

  2.   

    Code文前夹 .   Base 一个类.  IsNo() 类中的一个方法
      

  3.   

    回楼上
    刚刚创建的dr对象是指想类似"BOF"的位置
    dr.Read();后才指向第一条记录的
    楼主为什么这么调用  Code.Base.IsNo()     ?
      

  4.   

    你应该判断dr是不是null值
    还是一样啊
      

  5.   

    第二:你的DB层代码没有必要用try catch,
    楼上说的对,你应跟踪一下返回值是多少,
    还有打开事件探查器,看看你的SQL语句对否,虽然只有一行,也不能大意
    第一:
    问题可能出在你的Page_Load里了,Button2事件后页面回发,但可能性很小弹出对话框后,你在页面点右键看看源文件,第一行是不是有你刚才注入的脚本建意你的脚本代码改一下:下面代码中str_Ctl_Name是关闭弹出对话框后,焦点回到的控件。page.RegisterStartupScript("","<script>alert('"+str_Message+"');document.forms(0)."+str_Ctl_Name
    +".focus(); document.forms(0)."+str_Ctl_Name+".select();</script>");
      

  6.   

    请问一下,不这样调用 Code.Base.IsNo()    那怎么调用 阿
      

  7.   

    我也有阿    if (this.TextBox16.Text.ToString() == "")
            {
                Page.RegisterClientScriptBlock("", "<script>alert('英文名称不能为空!')</script>");
                Page.RegisterClientScriptBlock("select", "<script>document.all('TextBox16').select()</scripy");
            }
            else if (Code.Base.IsNo("select * from Businesser where EName = '" + TextBox16.Text.ToString() + "'") == 1)
            {
                Page.RegisterStartupScript("", "<script>alert('该英文名称,已有人注册,请换一个!')</script>");
                Page.RegisterStartupScript("select", "<script>document.all('TextBox16').select()</script>");
            }    
      

  8.   


      int j= Convert.ToInt32 (cmd.ExecuteScalar());
    if(j>0)
    {
    return 1;
    }
    else
    {
    return 0;
    }     if   (Code.Base.IsNo( "select  (*)   from   Businesser   where   EName   =   ' "   +   ename   +   " ' ")   ==   1) 
      

  9.   

    SqlDataReader   dr   =   myCm.ExecuteReader(); 
    if(dr.HasRows) 

    return   1; 

    else 

    return   0;