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) 展开
 我来答
老狼的诗
2011-12-01 · TA获得超过1099个赞
知道小有建树答主
回答量:1066
采纳率:0%
帮助的人:774万
展开全部
SqlDataReader Dr = Cmd.ExecuteReader();lblSum.Text = Dr["number"].ToString();
有错;
你可以使用DataAdapter
DataTable dt=new DataTable();
SqlDataAdapter adapter=new SqlDataAdapter("select count(*) as number from Admin", Conn);
adapter.Fill(dt);
lblSum.Text = dt.Rows[0][0].ToString();
这段代码是我手写的;未经测试;基本原理一样;你的代码的问题出在了;
lblSum.Text = Dr["number"].ToString();;
这里;无法调用;如果还有疑问可以Hi我的;哥们
vic_zc
2011-12-01 · TA获得超过235个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:273万
展开全部
问题很简单。。。你只要在执行 lblSum.Text = Dr["number"].ToString();这句之前加上 Dr.Read() 这句是读数据的操作,你的代码里没有这句,所以报了“ 在没有任何数据时进行无效的读取尝试”的错误。最好写成
if(Dr.Read())
{
lblSum.Text = Dr["number"].ToString();
}

还有 datareader使用完了之后也是要close掉的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
godenlion
2011-12-01 · 超过16用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:34.3万
展开全部
vic_zc
是正确定的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式