想从数据库中找到字段round最大的值,然后赋值给string roundno.可以用sqldatareader吗,怎样用,谢谢。另不知道下面这条查询语句对不对这样写。string sqlgetround = "select max(round) from Product where season= 'summer'";

解决方案 »

  1.   


    SqlConnection con = DB.WebConnection();//通过类调用连接上数据库
    con.Open();//打开连接
    SqlCommand com = new SqlCommand();
    string sqlgetround = "select max(round) as max from Product where season= 'summer'";
    com.CommandText = sqlgetround;
    com.CommandType = CommandType.Text;
    com.Connection = con;
    SqlDataReader reader = com.ExecuteReader();
    if (reader.Read())
    {
        string max = reader["max"].ToString();
    }
    随便写的
    基础的东西先好好学下吧,一下写不出来也要能马上在网上查到
      

  2.   

    +++
    一定要记得,使用"as"给新字段重命名,因为使用max后的字段是没有名称,要重命名后才可以调用
      

  3.   

    谢谢楼上,另外还有个小问题:我想判断是否有符合条件的记录,代码如下,我如果用rdr1.reader()的真假,可以判断是否有符合条件的记录吗?如不行,怎样写。
        string sqlcheck = "select * from Product where season= 'summer'";
                    SqlCommand cmdcheck = new SqlCommand(sqlcheck, conn);
                    SqlDataReader rdr1 = cmdcheck.ExecuteReader();
      

  4.   


    SqlDataReader rdr1 = cmdcheck.ExecuteReader();
    bool result = rdr1.HasRows;
    rdr1.Close();result为ture则有记录。
      

  5.   

    string max = reader["max"].ToString(),但是这个取出的值想加1
    总是出错。用int max =convert.toint32()+1也不行。
      

  6.   

    "select max(round)+1 as max from Product where season= 'summer'"
      

  7.   

    晕阿,还是提示Invalid attempt to read when no data is present. 
     string roundno;                if (result)
                    {
                        
                        string sqlgetround = "select max(roundno)+1 as max from Product where season= 'summer'";
                        SqlCommand cmdround = new SqlCommand(sqlgetround, conn);
                        SqlDataReader rdr2 = cmdround.ExecuteReader();
                        roundno = rdr2["max"].ToString();
                       // roundno = "1";
                        rdr2.Close();
                        Response.Write("found");
                    }
                    else
                    {
                         roundno = "1";
                        Response.Write("no found");
                       
                    }
      

  8.   

    select max(ISNULL(roundno,0))+1 as maxRoundno from Product where season= 'summer'试试这个
    可能没有值,也可能是刚才别名max是关键字的原因
      

  9.   

    你少了一句
    SqlDataReader rdr2 = cmdround.ExecuteReader();
    后面的
    if (rdr2.Read())
      

  10.   

    还不行啊,roundno在数据库中,我改成nchar,和smallint,都不行。