Well, I've ran into a problem when binding ListBox control to DataTable.
Code:
using (DbWrapper db = DbFactory.GetConnection("SQLite").WrapIn<MyDbWrapper>())
{
db.Open();
DataTable results = db.ExecuteQuery("SELECT id,title FROM schedule");
ScheduleList.DataSource = results;
ScheduleList.DisplayMember = "title";
ScheduleList.ValueMember = "id";
}
This code is supposed to receive data from my SQLite database, and bind it to my ScheduleList, but when I compile I see my ListBox filled with System.Data.DataRowView strings.

There's no problems with database. The application is receiving data, and the data is correct. If I iterate through my datatable I will get id and title as column names, so theres nothing wrong with them.
I've read that the problem may be solved by changing binding order or setting ListBox.Sorted property to false. I've tried it all and still no success.
Any suggestions? Are there any other solutions except iterating over datarows and adding them manually?
Best Regards.
I used this code and it worked.
DataTable oTable = new DataTable();
oTable.Columns.Add("ID", typeof(int));
oTable.Columns.Add("TITLE", typeof(string));
DataRow oNewRow = null;
for (int i = 0; i < 10; i++)
{
oNewRow = oTable.NewRow();
oNewRow["ID"] = i;
oNewRow["TITLE"] = "Title_" + i.ToString();
oTable.Rows.Add(oNewRow);
}
listBox1.DataSource = oTable;
listBox1.ValueMember = "ID";
listBox1.DisplayMember = "TITLE";

EDIT: you may need to give tha datasource first and then declare the value-display members.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With