一部のテーブル名が入力されたドロップダウンリストがあります。選択が変更されると、GridViewは変更を反映する必要があります。動的にSqlDataSourceの選択クエリを作成します。
テーブル名としてパラメータを指定してストアドプロシージャを使用すると、おそらく動作する1つの方法が考えられます。
しかし、これを達成するための他の方法があるのかどうかは疑問です。何か案は?ありがとう
一部のテーブル名が入力されたドロップダウンリストがあります。選択が変更されると、GridViewは変更を反映する必要があります。動的にSqlDataSourceの選択クエリを作成します。
テーブル名としてパラメータを指定してストアドプロシージャを使用すると、おそらく動作する1つの方法が考えられます。
しかし、これを達成するための他の方法があるのかどうかは疑問です。何か案は?ありがとう
:あなたはSelectCommandType =「テキスト」と以下のように使用するコードを設定する必要があります。
この場合は恐ろしいことではありませんが、ワイヤ全体で完全なクエリを送信していますが、これは好ましくありません。さらに、テーブル自体に直接アクセスすることもできますが、SPROCへのアクセスを許可することで、直接アクセスを許可せずにこのリスト機能を特定のユーザーグループに提供することができます。
SQLを構築するのではなく、ストアドプロシージャでCASE文を使用することをお勧めします。これはあなたがテーブルのみをサポートしていることを保証しますあなたはを認識しており、システムの不正使用を禁止しています。
代わりの方法として、Sqldatasourceのselectコマンドを動的に設定することができます。私は、ストアドプロシージャのアプローチは、上記の例の両方で構築SQLに好適であることに同意する傾向がある
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (DropDownList1.SelectedValue.ToString())
{
case "TABLE1":
SqlDataSource1.SelectCommand = "Select fieldName from TABLE1";
break;
case "TABLE2":
SqlDataSource1.SelectCommand = "Select fieldName from TABLE2";
break;
default:
SqlDataSource1.SelectCommand = "Select fieldName from TABLE";
break;
}
}
ええ、あなたの意見に同意します。 – woodykiddy