4
Answers

Problem with inserting the combobox selected value of type int

Nel

Nel

13y
4.1k
1
Hi,
I have a combobox and the value selected I want to use as a parameter. The field is of type Number in the access database, but when using the parameter for inserting the value in the database I get an error:
Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible'. and the code is:

int garbr = Convert.ToInt32(comboBox1.SelectedItem);
com.Parameters.AddWithValue("@Garbr", garbr);

if I write the code like:

com.Parameters.AddWithValue("@Garbr", comboBox1.SelectedItem);

I get an error:
"Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done."
in : com.ExecuteNonQuery();

and the comboBox1.SelectedItem doesn't get a value, unlike the other parameters for which I also use combobox values, but of type text (they have the correct value when debugging)

Can anybody help me please?
Thanks




Answers (4)
1
Vulpes
NA 98.3k 1.5m 13y
Yes, getting values from data-bound comboboxes and listboxes can be tricky.

I'd try:

if (comboBox1.SelectedIndex >  -1)
{
    DataRowView drv = (DataRowView)comboBox1.SelectedItem;
    int garbr = Convert.ToInt32(drv[comboBox1.DisplayMember].ToString());
    com.Parameters.AddWithValue("@Garbr", garbr);
}
Accepted
0
I its not working by selectedValue and dataview type casting only for datatable then use following code:
string matchValue= textbox.Text;
int _id,MainId;
foreach (DataRow row in datatableobject.Rows)
{
if (row["Name"].ToString().Contains(matchValue))
{
_id = Convert.ToInt32(row["ID"]);
MainId = _id;
}
}
You can use this is for textbox also and if you want to check like search then use Contains otherwise use row["Name"].ToString()==matchValue.
If it works then give me feedback.
0
Nel
NA 713 955.3k 13y
Hi Vulpes,
Can you please help me how it would be the opposit situation?
I  have a combobox and when clicking on a datagridview row I retrieve the values of  the row in the combobox, datatimepicker.... But the combobox.selecteditem  doesn't return the correct value. Again because of the DataGridView  type.

I have

comboBox1.SelectedItem =

Convert.ToInt32(dataGridView2.SelectedRows[0].Cells[0].Value);


but it is not changing when clicking on different rows in  the datagridview.
Can you please help me?
I will post this as a new post  now.

Thanks in advance
0
Nel
NA 713 955.3k 13y
Thank you very much Vulpes:)