C#中怎么获取Select count(*) 的返回值?

SqlConnectionConn=newSqlConnection(DataEnter.strConn);Conn.Open();SqlCommandCmd=newSq... SqlConnection Conn = new SqlConnection(DataEnter.strConn);
Conn.Open();
SqlCommand Cmd = new SqlCommand("select count(*) as number from Admin", Conn);
SqlDataReader Dr = Cmd.ExecuteReader();
lblSum.Text = Dr["number"].ToString();
Conn.Close();

执行的时候抛出异常
InvalidOperationException
在没有任何数据时进行无效的读取尝试。

有人知道这个问题怎么解决吗?
异常信息:

用户代码未处理 System.InvalidOperationException
Message="在没有任何数据时进行无效的读取尝试。"
Source="System.Data"
StackTrace:
在 System.Data.SqlClient.SqlDataReader.GetValue(Int32 i)
在 System.Data.SqlClient.SqlDataReader.get_Item(String name)
在 Admin_User.Page_Load(Object sender, EventArgs e) 位置 e:\fsMuseum\Admin\User.aspx.cs:行号 41
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
展开
 我来答
天才的机场
推荐于2018-03-13 · TA获得超过261个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:167万
展开全部
你那个SQL语句得出的最终结果是一个 int类型的数字,所以你用SqlDataReader 时候读取的时候根本不能以一个数字来读取,所以也就没有数据
百度网友b9cde75af
推荐于2016-08-24 · 超过31用户采纳过TA的回答
知道答主
回答量:130
采纳率:0%
帮助的人:95万
展开全部
SqlConnection Conn = new SqlConnection(DataEnter.strConn);
Conn.Open();
SqlCommand Cmd = new SqlCommand("select count(*) as number from Admin", Conn);
SqlDataReader Dr = Cmd.ExecuteReader();
if(Dr.Read())
{
lblSum.Text = Dr["number"].ToString();
}
Dr.Close();
Conn.Close();

ExecuteReader()独占连接,用后得关闭。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ShakaVX
2010-08-25 · TA获得超过758个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:156万
展开全部
if(Dr.Read())
{
lblSum.Text = Dr["number"].ToString();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式