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

command的executenonquery问题救急

protected void Button2_Click(object sender, EventArgs e)
    {
        string question = re.replace(this.Label1.Text.ToString());
        string username = System.Web.HttpContext.Current.Session["user"].ToString();
        string sql = "select count(*) from [user] where question='" + question + "' and username='" + username + "'";
        SqlConnection conn = Connection.getConnection();
        SqlCommand comm = new SqlCommand(sql, conn);
        conn.Open();
        int n = (int)comm.ExecuteNonQuery();
        conn.Close();
        if (n > 0)
        {
            333

        }
        else
        {
            666
        }
    }

奇怪的问题是 . 我追踪n的值.居然等于-1 .....是不是我 哪里什么弄错了啊....
按道理.我添的数据 .数据库里是存在的.  应该执行333代表的数据才对的啊 
--------------------编程问答-------------------- 单步调试代码指定到这步后
string sql = "select count(*) from [user] where question='" + question + "' and username='" + username + "'";

复制里面的sql在数据库执行看结果
--------------------编程问答-------------------- 你应该用executeScalar --------------------编程问答-------------------- 针对ExecuteNonQuery,对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。 --------------------编程问答-------------------- 你应该使用 int n = (int)comm.ExecuteScalar(); --------------------编程问答-------------------- 应该是报错了吧,看一下SQL语句有没有问题 --------------------编程问答-------------------- 不好意思,我问个问题,ExecuteNonQuery()是实现什么功能的呀
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,