从 ASP.NET 网络应用中的数据库行获取计数值
Get the value of Count from database rows in ASP.NET web app
查询正确,但我想获取行数并在前端页面显示。此代码引发错误。
protected void Page_Load(object sender, EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["ConnectionString_cw"].ConnectionString;
OracleCommand cmd = new OracleCommand();
OracleConnection con = new OracleConnection(constr);
con.Open();
cmd.Connection = con;
cmd.CommandText = @"SELECT COUNT (*) from dish";
cmd.CommandType = CommandType.Text;
DataTable dt = new DataTable("Dish");
using (OracleDataReader sdr = cmd.ExecuteReader())
{
if (sdr.HasRows)
{
dt.Load(sdr);
recordMsg.Text = sdr["count(*)"].ToString();
}
}
con.Close();
}
我正在使用 Oracle 作为数据库并且它已经连接。
为以下代码行使用数字索引
recordMsg.Text = sdr["count(*)"].ToString();
改为...
recordMsg.Text = sdr[0].ToString();
或:
修改下面两行代码:
cmd.CommandText = @"SELECT COUNT (*) from dish";
recordMsg.Text = sdr["count(*)"].ToString();
阅读
cmd.CommandText = @"SELECT COUNT (*) as rCount from dish";
recordMsg.Text = sdr["rCount"].ToString();
任何一个选项都应该适合您。
注意:数字索引为零,因为它是从零开始的索引。我相信你明白这一点
由于您需要单个值,因此没有使用 DataTable
和 DataReader
您可以简单地使用 ExcuteScalar
命令并获取值。
command.ExecuteScalar();
或者干脆
recordMsg.Text=command.ExecuteScalar().ToString();
所以整个代码可以写成
string constr = ConfigurationManager.ConnectionStrings["ConnectionString_cw"].ConnectionString;
OracleCommand cmd = new OracleCommand();
OracleConnection con = new OracleConnection(constr);
con.Open();
cmd.Connection = con;
cmd.CommandText = @"SELECT COUNT (*) from dish";
cmd.CommandType = CommandType.Text;
recordMsg.Text=command.ExecuteScalar().ToString();
也建议使用using statement
,以便更好地使用命令和连接。
查询正确,但我想获取行数并在前端页面显示。此代码引发错误。
protected void Page_Load(object sender, EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["ConnectionString_cw"].ConnectionString;
OracleCommand cmd = new OracleCommand();
OracleConnection con = new OracleConnection(constr);
con.Open();
cmd.Connection = con;
cmd.CommandText = @"SELECT COUNT (*) from dish";
cmd.CommandType = CommandType.Text;
DataTable dt = new DataTable("Dish");
using (OracleDataReader sdr = cmd.ExecuteReader())
{
if (sdr.HasRows)
{
dt.Load(sdr);
recordMsg.Text = sdr["count(*)"].ToString();
}
}
con.Close();
}
我正在使用 Oracle 作为数据库并且它已经连接。
为以下代码行使用数字索引
recordMsg.Text = sdr["count(*)"].ToString();
改为...
recordMsg.Text = sdr[0].ToString();
或:
修改下面两行代码:
cmd.CommandText = @"SELECT COUNT (*) from dish";
recordMsg.Text = sdr["count(*)"].ToString();
阅读
cmd.CommandText = @"SELECT COUNT (*) as rCount from dish";
recordMsg.Text = sdr["rCount"].ToString();
任何一个选项都应该适合您。 注意:数字索引为零,因为它是从零开始的索引。我相信你明白这一点
由于您需要单个值,因此没有使用 DataTable
和 DataReader
您可以简单地使用 ExcuteScalar
命令并获取值。
command.ExecuteScalar();
或者干脆
recordMsg.Text=command.ExecuteScalar().ToString();
所以整个代码可以写成
string constr = ConfigurationManager.ConnectionStrings["ConnectionString_cw"].ConnectionString;
OracleCommand cmd = new OracleCommand();
OracleConnection con = new OracleConnection(constr);
con.Open();
cmd.Connection = con;
cmd.CommandText = @"SELECT COUNT (*) from dish";
cmd.CommandType = CommandType.Text;
recordMsg.Text=command.ExecuteScalar().ToString();
也建议使用using statement
,以便更好地使用命令和连接。