string uname = proname.Text.ToString();
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["pubconn"].ConnectionString);
        SqlCommand cmd = new SqlCommand("select * from stock where s_name='" + uname + "'", conn);
        conn.Open();
        int result=Convert.ToInt32(cmd.ExecuteScalar());
表stock字段s_name下有“诺基亚手机”、“西门子手机”、“联想手机”…… 只有在TextBox中是“诺基亚手机”result才得到的是1 其它的为什么都是零?

解决方案 »

  1.   

    (cmd.ExecuteScalar());
    因为这个是获得SQL语句的影响条数。。
      

  2.   

    那这个应该用什么,主要就是判断uname在数据库stock的s_name字段下是否已经存在?
      

  3.   

    说错了那是对的你直接到数据库里相同的查询看看UNAME=别的名字
      

  4.   

    只有uaname=诺基亚手机  返回一个1  像西门子手机 联想手机……都返回零
      

  5.   

    cmd.ExecuteScalar()
    检查查询出来的结果的第一行第一列的内容是什么
    在sql查询分析其里面看看
      

  6.   

    这个是你程序的返回啊。
    你直接去数据库查查看select * from stock where s_name='联想手机'
    如果这么查没有就是没有
    如果有,就断点看看string uname = proname.Text.ToString()的uname有没数据?
    没数据当然就查不到了
      

  7.   

    数据库里有数据  用分析器也返回数据  但不知道怎么回事,就是 int result=Convert.ToInt32(cmd.ExecuteScalar())返回零
      

  8.   

    cmd.ExecuteScalar()这个语句返回首行首列
    他只返回一个记录  很明显他返回的是表中第一行的编号ID要返回的多,要这样string uname = proname.Text.ToString();
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["pubconn"].ConnectionString);
            SqlCommand cmd = new SqlCommand("select * from stock where s_name='" + uname + "'", conn);
            conn.Open();
            SqlDataReader dr=cmd.ExecuteReader();
    while(dr.Read())
    {
    xx=dr[0];
    xx1=dr[1];
    }或者用
    SqlDataAdapter adt=new SqlDataAdapter(cmd);
    DataSet ds=new DataSet();
    adt.Fill(ds);
    ds.Tables[0].Rows[rowindex][colindex]也可以取值
      

  9.   

    我不返回数据  只判断数据在数据库中是否存在  存在返回1  不存在返回0  我加上条件后就只返回一条数据  s_name的数据没有重复
      

  10.   

    int result=Convert.ToInt32(cmd.ExecuteScalar())这个事返回第一行第一列的值啊,怎么会是1和0?
    select * from stock where s_name='诺基亚手机'在sql2005上执行看看结果是什么
      

  11.   

    还是在SQL中查一下   其他的数据库中有没有记录 select * from stock where s_name='联想手机' 
      

  12.   

    我用executenonquery()返回的就行了