我在做一个图书管理系统,我想从一个控件TextBox6获得读者的编号(BH)
然后在readers表中获得最大借书的本数(maxjsl)和已经借了书的本数(yjsl)
然后进行比较,但是我用int变量的max和has记录这两个值,以便进行比较,但是我观察返回的值都是1,哪里出问题了???多谢大家指教
            String sqlfindmax = "select maxjsl from readers where BH='"+this.textBox6.Text+"'";
            OdbcCommand commfindmax = new OdbcCommand(sqlfindmax, connstring);
            OdbcDataAdapter damax = new OdbcDataAdapter(commfindmax);
            DataSet dsmax = new DataSet();
            int max = damax.Fill(dsmax,"maxjsl");
            connstring.Close();
            //MessageBox.Show(max.ToString());            String sqlfindhas = "select yjsl from readers where BH='" + this.textBox6.Text+ "'";
            OdbcCommand commfindhas = new OdbcCommand(sqlfindhas, connstring);
            OdbcDataAdapter dahas = new OdbcDataAdapter(commfindhas);
            DataSet dshas = new DataSet();
            int has = dahas.Fill(dshas, "yjsl");
            connstring.Close();
            //MessageBox.Show(has.ToString());

解决方案 »

  1.   

      int max = damax.Fill(dsmax,"maxjsl");   int has = dahas.Fill(dshas, "yjsl");
    两个返回的都是影响的行数
    并不是你查询到的值
      

  2.   

    参考:http://msdn.microsoft.com/zh-cn/library/zxkb3c3d.aspx
      

  3.   

    使用OdbcDataReader 
    string queryString = "select maxjsl from readers where BH='"+this.textBox6.Text+"'";    using (OdbcConnection connection = new OdbcConnection(connstring))
        {
            OdbcCommand command = new OdbcCommand(queryString, connection);        connection.Open();
            int max =0;
            OdbcDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
               max =Convert.ToInt32( reader[0]);
            }        reader.Close();
        }