1

以下のコードは、1 つのアイテム (コンボボックスの行) に 2 つの値でコンボボックスを埋めます。たとえば、tval1 (char) を使用せずに val1(numeric 9,2) アイテムのみを DB に挿入したいと考えています。選択した値に応じて val1、val2、または val3 のみを INSERT INTO DB にしたい場合、SqlCommand INSERT INTO はどのようになりますか? 単純な塗りつぶされたコンボボックスを挿入する方法は知っていますが、DB に挿入したいものをどのように設定できますか?

var cb4 = new SqlCommand("SELECT cena1,cena2,cena3,tcena1,tcena2,tcena3 FROM zajezd WHERE akce=" + zakce.Text, spojeni);
 SqlDataReader dr4 = cb4.ExecuteReader();
        while (dr4.Read())
        {
            string val1 = Convert.ToString(dr4["cena1"]);
            string val2 = Convert.ToString(dr4["cena2"]);
            string val3 = Convert.ToString(dr4["cena3"]);
            string tval1 = Convert.ToString(dr4["tcena1"]);
            string tval2 = Convert.ToString(dr4["tcena2"]);
            string tval3 = Convert.ToString(dr4["tcena3"]);

            comboBox4.Items.Add(val1 + " " + tval1);

            comboBox4.Items.Add(val2 + " " + tval2);
            comboBox4.Items.Add(val3 + " " + tval3);

        }
        dr4.Close();
        dr4.Dispose();

        spojeni.Close();

これを読んでいただきありがとうございます。これを行う方法がわかりません。

これは、単一の値でコンボボックスを挿入するための私のコードです -

  prikaz.Parameters.AddWithValue("@variable", comboBox1.Text);

val1だけ保存するにはどう改善すればいいですか?どうもありがとうございます

4

1 に答える 1

1

まず、独自のクラスを作成する必要があります。

public class ComboboxItem
{
    public string val { get; set; }
    public string tval { get; set; }

    public  string DisplayText {get  { return val + " " + tval;}  }
}

次に、コードを変更します。

var cb4 = new SqlCommand("SELECT cena1,cena2,cena3,tcena1,tcena2,tcena3 FROM zajezd WHERE akce=" + zakce.Text, spojeni);
SqlDataReader dr4 = cb4.ExecuteReader();
while (dr4.Read())
    {
        string val1 = Convert.ToString(dr4["cena1"]);
        string val2 = Convert.ToString(dr4["cena2"]);
        string val3 = Convert.ToString(dr4["cena3"]);
        string tval1 = Convert.ToString(dr4["tcena1"]);
        string tval2 = Convert.ToString(dr4["tcena2"]);
        string tval3 = Convert.ToString(dr4["tcena3"]);

        ComboboxItem cbxItem1 = new ComboboxItem();
        cbxItem1.val = val1;
        cbxItem1.tval = tval1;
        comboBox4.Items.Add(cbxItem1);

        ComboboxItem cbxItem2 = new ComboboxItem();
        cbxItem2.val = val2;
        cbxItem2.tval = tval2;
        comboBox4.Items.Add(cbxItem2);

        ComboboxItem cbxItem3 = new ComboboxItem();
        cbxItem3.val = val3;
        cbxItem3.tval = tval3;
        comboBox4.Items.Add(cbxItem3);

        //Set display member and value member
        comboBox1.DisplayMember = "DisplayText";
        comboBox1.ValueMember = "val";
    }
    dr4.Close();
    dr4.Dispose();

    spojeni.Close();

最後に、挿入するには、コンボボックスの selectedValue を使用する必要があります。

prikaz.Parameters.AddWithValue("@variable", comboBox1.SelectedValue);
于 2013-07-22T13:54:59.260 に答える