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)
展开
展开全部
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我的;哥们
有错;
你可以使用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我的;哥们
展开全部
问题很简单。。。你只要在执行 lblSum.Text = Dr["number"].ToString();这句之前加上 Dr.Read() 这句是读数据的操作,你的代码里没有这句,所以报了“ 在没有任何数据时进行无效的读取尝试”的错误。最好写成
if(Dr.Read())
{
lblSum.Text = Dr["number"].ToString();
}
还有 datareader使用完了之后也是要close掉的。。
if(Dr.Read())
{
lblSum.Text = Dr["number"].ToString();
}
还有 datareader使用完了之后也是要close掉的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
vic_zc
是正确定的.
是正确定的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询