5

好吧,要么我现在真的很累,要么真的很厚,但我似乎找不到答案

我正在使用 ASP.NET,我想查找表中的行数。

我知道这是 SQL 代码:select count(*) from topics,但是我怎么能把它显示为一个数字呢?

我要做的就是运行该代码,如果它 = 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 就简单多了。:)

4

3 回答 3

16

请注意,您必须先打开连接并执行命令,然后才能访问 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;
    }
}
于 2012-05-14T03:28:11.027 回答
2

ExecuteScalar是您正在寻找的。(SqlCommand的方法)

顺便说一句,坚持使用 C#,PHP 再简单不过了。这只是熟悉。

于 2012-05-14T03:27:02.573 回答
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 命令错误地从 sql server 返回零行

于 2012-05-14T05:54:35.653 回答