witam,
w htmlu mogę napisać tak
<select> <option value="1">jeden</option> </select>jak w C# zrobić coś takiego aby z wierzchu był jakiś tam napis a po wybraniu tego wartość combo była = jakiemuś int
witam,
w htmlu mogę napisać tak
<select> <option value="1">jeden</option> </select>jak w C# zrobić coś takiego aby z wierzchu był jakiś tam napis a po wybraniu tego wartość combo była = jakiemuś int
ComboBox.Items
zrobiłem coś takiego
private class Item
{
public string Name;
public int Value;
public Item(string name, int value)
{
this.Name = name;
this.Value = value;
}
public override string ToString()
{
// generuje text widziany w ComboBox
return Name;
}
}
public Form1()
{
InitializeComponent();
comboBox1.SelectedIndex = 0;
comboBox2.SelectedIndex = 0;
comboBox3.Items.Add(new Item("01 marzec", 76764));
//comboBox3.SelectedIndex = 0;
}
gdy robie coś takiego
adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand.Parameters.Add(new SqlParameter("@Data", SqlDbType.Int));
adapter.SelectCommand.Parameters["@Data"].Value = comboBox3.Text;
i dostaję failed to convert parameter value from a String to a Int32. No nie dziwne bo pod combobox2.text mam "01 marzec" :(
ComboBox.Items jest typu ObjectCollection i pozwala przechowywać dowolne obiekty, bo przyjmuje typy object
. W ComboBox prezentowane są wartości zwracane przez .ToString()
przez obiekt który jest item'em comboboxa.
Ale twój problem nie ma związku z tym, tylko z parametrem procedury. Sam definiujesz że parametr @Data
jest typu Int32, więc dlaczego jako jego wartość podajesz obiekt typu string
?
Musisz wykonać konwersję/parsowanie tekstu do integera.
Albo wziąć ComboBox.SelectedItem, zrzutować go na swój typ i pobrać właściwość Value
.
dzięki mashter za Twoją cierpliwość do mnie :)
ale nie wiem jak to skonwertować
próbuję tak
Convert.ToInt32(comboBox3.SelectedItem);
kompiluje się ale jak chce tego użyć spod przycisku dostaję Unable to cast object of type 'Item' to type 'System.IConvertible'.
Spróbuj: (comboBox3.SelectedItem as Item).Value
SelectedItem jest typu object, u ciebie przechowuje zaś obiekty typu Item. Wystarczy więc zrzutować i pobrać wartość z pola Value.
super, działa jak należy:0 dzięki
chciałby kliknąć "post jako wartościowy" wcześniejszy i ten Pana Kuby jednak nie działa ten wihajster :(