0
using (SqlConnection con = new SqlConnection(cons))
{
    con.Open();
    using (SqlCommand com = new SqlCommand("INSERT INTO Dealers (DealerId,DealerName) values (NEXT VALUE FOR Dealers_DealerId_SEQ,@dname)", con))
    {
        com.Parameters.AddWithValue("@dname", this.ComboText.Text.ToString());
        com.ExecuteNonQuery();
    }
    con.Close();
}

このコードは、comboxにデータを提供するテーブルを更新します。データベースは適切に更新されますが、アプリケーションが再起動されるまでアプリケーションのドロップダウンは更新されません。どんな助けでもありがたいです。

this.Dealers.DataSource = this.dealersBindingSource; this.Dealers.DisplayMember = "DealerName"; this.Dealers.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.Dealers.Name = "Dealers"; this.Dealers.Size = new System.Drawing.Size(121, 21); this.Dealers.ValueMember = "DealerName";

これは、コンボボックスと関係のあるコードです。

4

2 に答える 2

0

上記のコードはデータベースを更新するだけです。データソースがどのように見えるかはわかりませんが、いずれの場合も、ドロップダウンコントロールにデータソースを再割り当てする必要があります。

データソースがの場合はList<T>、データベースと同時に新しいアイテムをリストに追加するか、データベースからリストをリロードします。まったく同じリストを再割り当てする場合は、前DataSourceに割り当てる必要があります。そうしないと、ドロップダウンは変更に気づきません。nullDataSource

を使用することもできますBindingList。を変更するBindingListと、ドロップダウンが自動的に更新されます。

データソースがデータセットの場合、データセットを再クエリする必要があります。つまり、データベースからデータを再読み取りする必要があります。

于 2013-03-13T18:56:14.800 に答える
0

コンボボックスをリロードする必要があります。

このメソッドを使用してコンボボックスを埋めるとします

public void LoadCb()
{
    SqlConnection cn = new SqlConnection("connectionstring");
    SqlDataAdapter da = new SqlDataAdapter("select DealerId, DealterName from Dealers", cn);
    DataTable dt = new DataTable();
    da.Fill(dt);
    comboBox1.DataSource = dt;
    comboBox1.DisplayMember = "DealerName";
    comboBox1.ValueMember = "DealerId";
}

次に、ディーラーテーブルに値を挿入した後、LoadCbメソッドを呼び出す必要があります

于 2013-03-13T18:57:33.507 に答える