好的,我现在真的很累或很厚,但我似乎无法找到答案
我正在使用ASP.NET,我想在表格中找到行数。
我知道这是SQL代码:select count(*) from topics
,但我如何将HECK显示为数字?
我想要做的就是运行该代码,如果它= 0显示一件事,但如果它超过0则显示其他东西。请帮忙吗?
这是我到目前为止所拥有的
string selectTopics = "select count(*) from topics";
// Define the ADO.NET Objects
SqlConnection con = new SqlConnection(connectionString);
SqlCommand topiccmd = new SqlCommand(selectTopics, con);
if (topiccmd == 0)
{
noTopics.Visible = true;
topics.Visible = false;
}
但我知道我错过了一些严重的错误。我一直在寻找年龄但找不到任何东西。
PHP非常简单。 :)
答案 0 :(得分:11)
请注意,必须先打开连接并执行命令,然后才能访问SQL查询的结果。 ExecuteScalar
返回单个结果值(如果您的查询将返回多列和/或多行,则必须使用不同的方法)。
注意使用using
构造,它将安全地关闭并处理连接。
string selectTopics = "select count(*) from topics";
// Define the ADO.NET Objects
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand topiccmd = new SqlCommand(selectTopics, con);
con.Open();
int numrows = (int)topiccmd.ExecuteScalar();
if (numrows == 0)
{
noTopics.Visible = true;
topics.Visible = false;
}
}
答案 1 :(得分:1)
ExecuteScalar 是您正在寻找的。 (SqlCommand的方法)
顺便说一句,坚持使用C#,PHP就更容易了。它只是熟悉。答案 2 :(得分:0)
您需要打开连接 这可能有效:
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = "select count(*) from topics";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection;
sqlConnection1.Open();
reader = cmd.ExecuteReader();
// Data is accessible through the DataReader object here.
sqlConnection1.Close();
类似问题:C# 'select count' sql command incorrectly returns zero rows from sql server