int result=(int)cmd.ExecuteScalar();orint result= Convert.ToInt32(cmd.ExecuteScalar().ToString());

解决方案 »

  1.   

    使用 ExecuteScalar 方法从数据库中检索单个值(例如一个聚合值)。与使用 ExecuteReader 方法,然后使用 SqlDataReader 返回的数据执行生成单个值所需的操作相比,此操作需要的代码较少。典型的 ExecuteScalar 查询可以采用类似于下面的 C# 示例的格式:CommandText = "select count(*) as NumberOfRegions from region";Int count = (int) ExecuteScalar();
      

  2.   

    int resultint.Parse(cmd.ExecuteScalar().ToString());
      

  3.   

    int result=int.Parse(cmd.ExecuteScalar().ToString());
      

  4.   

    实际上不需要ToString方法直接就可以转化了,如果有ToString反而增加了转化的时间,对速度有点影响:
    int result = Convert.ToInt32(cmd.ExecuteScalar());
      

  5.   

    举个简单的例子:如果cmd.ExecuteScalar()是个Double类型并且值是1.4,如果ToString的话,不可能从"1.4"转化到整型值1(整型不允许小数点),但是可以直接从Double类型的1.4到整型1(丢掉精确度),所以最好不要转化到String再到整型,直接到整型就可以了。实际上int.Parse(cmd.ExecuteScalar().ToString())和Convert.ToInt32(cmd.ExecuteScalar().ToString())是一个意思,当Convert的ToInt32方法的参数是String时会调用Int32的Parse方法实现。
      

  6.   

    不能转换的原因很简单,因为string类型是不可以转换成int型的。C#与C++不同的是,C#中只允许在类与它的基类间进行转换。所以你要把string转换成int,只能借助int.Parse()或者Convert.ToInt32()