无法将类型“System.Data.SqlClient.SqlDataReader”隐式转换为“int”
public static SqlDataReader GetTopData(string sql)
{
SqlConnection conn = DBClass.GetConnection();
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
cmd.ExecuteScalar();
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
catch (Exception ex)
{
throw (ex);
}
}
string searchSql = @"select count(*) from userinfo where uid like '%'"+tbKey.Text.Trim()+"'%' or uname like '%'"+tbKey.Text.Trim()+"'%'";
int o = SqlHelper.GetTopData(searchSql); //查询总的有多少条数据
哪个大哥 教我把这个count(*)值 取出来
[解决办法]
连接关了DR就完了,换DATASET就O了。
CommandBehavior.CloseConnection
我不止一次看到这样用的,是不是哪本书上这么写的?
[解决办法]
你应该用 Int32 count = (Int32) cmd.ExecuteScalar();
[解决办法]
SqlDataReader dr 的有效域是你的 try {}
[解决办法]
让你的方法返回Int型,执行ExecuteScalar(),就能取出count
[解决办法]
SqlDataReader reader=SqlHelper.GetTopData(searchSql);
reader.Read();
int o=Convert.ToInt32(reader[0]);
[解决办法]
ExecuteScalar(),返回受影响行数。