5

さて、私は今本当に疲れているか、本当に太っていますが、これに対する答えを見つけることができないようです

ASP.NETを使用していますが、テーブル内の行数を確認したいと思います。

これがSQLコードであることは知っていますselect count(*) from topicsが、どうすればそれを数値として表示できますか?

私がやりたいのは、そのコードを実行することだけです。それが0の場合は、1つのものを表示しますが、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#'selectcount'sqlコマンドがSQLサーバーからゼロ行を誤って返す

于 2012-05-14T05:54:35.653 に答える