无法将类型“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(),返回受影响行数。