如何检索ADO.NET SqlCommand的结果?

时间:2012-05-14 03:22:32

标签: c# asp.net sql-server select

好的,我现在真的很累或很厚,但我似乎无法找到答案

我正在使用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非常简单。 :)

3 个答案:

答案 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