-4

2つの値を持つComboBoxコントロールがあるフォームがあります。

ユーザーがリストから1つの項目を選択したら、選択したオプションに対応するデータのテーブルを表示する必要があります。

if (DropDownList1.SelectedValue == 1) 
{ 
    // open a SqlCommand
    // read values 
    // fill table
}
else if (DropDownList1.SelectedValue == 2)     
{ 
     // etc

問題は、ユーザーが選択したにのみテーブルに入力したいということです。しかし、フォームがロードされると、ComboBoxは自動的に最初のオプションを選択し、コードが実行されてテーブルがいっぱいになります。

これを防ぐにはどうすればよいですか?

4

2 に答える 2

1

これまでに何を試しましたか?

ドロップダウンからテーブル名を取得しても問題はありません。アプリケーションのデータアクセス層を理解して設計することが重要です。Webフォームに保存ボタンがあり、SQLコードをコードビハインドで動的に作成していますか、それともストアドプロシージャを使用していますか?

SQL Serverに接続してコマンドを実行するための開始点は、通常、次のようになります(Entity FrameworkのようにORMを使用しない場合)。

using (varconn = new SqlConnection(connectionString)) 
using (var cmd = conn.CreateCommand(...)))
{ 
    conn.Open();

    cmd.ExecuteNonQuery();
}

ASP.NET(MVCまたはWebフォーム)でEF(または単にDAL手法)を使用する方法についてさらにアイデアが必要な場合は、https ://stackoverflow.com/a/7474357/559144で私の回答を参照してください。

于 2012-08-06T08:09:06.637 に答える
0
        DataSet ds = new DataSet();
        ds.Tables.Add(new DataTable("DataTableNo1"));
        ds.Tables.Add(new DataTable("DataTableNo2"));

        string dtname = comboBox1.Text;
        ds.Tables[dtname].Rows.Add(new DataRow());
于 2012-08-06T08:09:03.187 に答える