3

C# ビジュアル スタジオ 2012 プロフェッショナル asp.net

ユーザー名を含むテーブルがあります: Josh、Jeremy、Jared、Justin...

そして、テーブル全体を表示する Web ページ gridview を作成しましたが、Justin だけを表示したいだけで、他には何も表示したくありません。

どうすればいいですか?

動作しなかったコードは次のとおりです。

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True");
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = con;
    SqlDataReader rs;

    con.Open();

    SqlParameter uName = new SqlParameter("paramFName", Account.Text);

    cmd.Parameters.Add(uName);

    cmd.CommandText = "SELECT * FROM Transactions WHERE FName=@paramFName";
    rs = cmd.ExecuteReader();

    cmd.Parameters.Clear();
    rs.Close();

テーブルのビューを作成する必要がありますか? 試しましたがうまくいきませんでした。

チップ?

4

3 に答える 3

2

"@"パラメータ名の を見逃しただけです。

SqlParameter uName = new SqlParameter("@paramFName", Account.Text);

where 句の場合、指定されたパラメーターに何も指定しなかったため、クエリ プロバイダーはこの条件を無視するだけになり、効果的な query が生成されますSELECT * FROM Transactions

usingさらに、ブロックの使用について考える必要があります。

using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"))
using (SqlCommand cmd = new SqlCommand())
{
    cmd.Connection = con;
    cmd.CommandText = "SELECT * FROM Transactions WHERE FName=@paramFName";
    cmd.Parameters.AddWithValue("@paramFName", Account.Text);

    con.Open();
    using (var rs = cmd.ExecuteReader())
    {
        //ToDo: Do something with the reader.
    }
}

もう 1 つのヒント:DataTable結果を a に入力する必要がある場合SqlDataAdapterは、データ リーダーを使用する代わりにa を使用できます。

using (var adapter = new SqlDataAdapter(cmd))
{
    var dataTable = new DataTable();
    dataTable.TableName = "QueryResult";
    adapter.Fill(dataTable);

    return dataTable;
}
于 2013-06-07T08:50:52.197 に答える
2

たとえば、最初の 10 個の名前を選択しようとしている場合は、SQL Select を次のように変更する必要があります。

cmd.CommandText = "SELECT TOP 10 * FROM Transactions WHERE FName=@paramFName";

それはあなたが求めていたものですか?

編集

OKなので、実際の問題であるデータを実際にどこにも表示していません。

データテーブルを作成してグリッドビューに表示する必要があります。

例については、次のリンクを参照してください。

グリッドビューの例

MSDN グリッドビューの例

于 2013-06-07T08:39:44.753 に答える
0

多くの情報を提供していませんが、コードは問題ないようです。

SQL Server 2012 を使用している場合は、キーワードOFFSET と FETCHを確認してください。以前のバージョンでは、 ROW_NUMBER OVER PARTITIONを使用する必要があります

良い習慣として、返される要素の数を常に制限する必要があります。

于 2013-06-07T08:53:02.940 に答える