2016-03-22 7 views
0

データベースからデータを取得したデータグリッドを表示する必要があるWebページを作成しています。私はASP.NET/C#アプリケーションとしてMS VSでこれを構築しています。私の見解では、GridView要素を使用しています。私はすでにGridViewをデータベースに接続しており、データを正しく取得しています。ASP.NET/C#のデータグリッドにWHEREクエリの動的値を取得するにはどうすればよいですか?

ただし、特定のユーザーのデータのみが表示されるように、ユーザーIDによって取得されるデータを制限する必要があります。 GridView要素デザインUIでユーザーID値をハードコードする方法はわかっていますが、値を動的にする必要があります。具体的には、ユーザが入力したURLから読み込まれます。

私が達成しようとしているのは、URL文字列からユーザーIDを抽出することです(この問題を解決する方法はわかります)。そして、データベースクエリ文字列のWHEREクエリ値として動的に追加します。私はGridViewの要素に動的な顧客ID値(「IDExtractedFromURL」)を追加することができますどのように

SELECT * FROM [DatabaseTableName] WHERE ([customerID] = IDExtractedFromURL) 

:それは次のようになりますか?それを変数として渡すことは可能ですか?もしそうなら、その構文は何ですか?一般的には

答えて

0

は、私がやるだろう、クエリ文字列でユーザーIDを渡していないと思いますが、あなたが望むものを達成するために:

1)クエリ文字列からユーザーIDを取得

var userId = int.Parse(this.Request.QueryString("userId"));

2)whereフィルターをSQLに追加します

sql += "\n WHERE [CustomerID] = @userId";それが位置してどこ

3)

dataSource.SelectParameters.Add(new Parameter("userId", TypeCode.Int32, userId)))

+0

私は小さなステップを必要と怖い)(あなたのグリッドデータソースにパラメータを追加します。私はほとんどがデザインパートと一緒に作業しているので、コードがどこに行くのかは実際は分かりません。ソースビューでは、私のGridViewは次のように定義されています。 ' ' データソース '

+0

@ H.NetIrrigateがあなたのコードを投稿します –

+0

申し訳ありませんが、コードを入力する前に誤って入力しました。私は後でそれを追加しました。 'WHERE([customerId] = @customerId)'部分を動的にする方法はありますか?私は、IDのセッターとゲッターを持つモデルクラスを追加して、WHERE(WHERE([customerId] = MyModel.GetCustomerID) 'のようなWHEREクエリでそれを参照しようとしましたが、うまくいきませんでした。 –

関連する問題