在asp.net做网站,在数据库查询,需要拿出一个serialno的最大值,一直抛出错误。“指定转换无效” “值必须是一个小于无限大的数”    在数据库查询器里用这个查询语句没问题。
   在代码中把max换成count没问题。
   请高人指点!!!        try
              {
                  conn.Open();
                  cmd.CommandText = "select max(SerialNo)+1 from UGoods ";
                  int record = (int)cmd.ExecuteScalar();         //统计总数
                  conn.Close();
                  return record;
               }
              catch (Exception)
              {
                  throw;
              }

解决方案 »

  1.   

    加个()试试
    cmd.CommandText = "select (max(SerialNo)+1) from UGoods ";
      

  2.   

    不行呀。还是相同错误!!!是不是.ExecuteScalar()返回值的问题??苦恼?
      

  3.   

    还有就是ExecuteScalar() 能不能用max() 函数呀?
      

  4.   


     int record = (int)cmd.ExecuteScalar(); //统计总数
    变成
     int record = (int?)cmd.ExecuteScalar(); //统计总数
      

  5.   

    C# code int record = (int)cmd.ExecuteScalar(); //统计总数
    变成
     int record = (int?)cmd.ExecuteScalar(); //统计总数
      有报错呀,“为无法将int隐式转换为int?
      

  6.   

    饿..typo.. 
    int? record = (int?)cmd.ExecuteScalar();
    试试不行的话再试试
    int record = (int)cmd.ExecuteScalar().ToString();
      

  7.   

    不行呀···还有就是ExecuteScalar() 能不能用max() 函数呀? 网上的用count()的比较多,max()的几乎没有·1··????????
      

  8.   

    cmd.CommandText = "select isnull(max(SerialNo),0)+1 from UGoods ";这样试试!
      

  9.   

    SerialNo是什么类型的?表里的最大值有多大?
      

  10.   

    [b]问题自己解决了,最终把他们全改为了string型了。
    还是谢谢各位了![/b]
      

  11.   

    估计是 超出 int 的范围了