2013-07-22 16 views
1

我有下面這段代碼填充組合框中的2個值在一個項目(組合框中的行)現在我想只插入例如val1(數字9 ,2)項目到沒有tval1(char)的數據庫中。如果SqlCommand INSERT INTO看起來像如果我想根據選定的值插入到DB只有val1,val2或val3?我知道如何插入簡單填充的組合框,但我怎樣才能設置我想要插入到數據庫中?從2列填充組合框項目INSERT INTO SqlCommand只有一列 - SelectedItem

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?非常感謝你

回答

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);