In the code that loads your ComboBox, you probably have something that looks like this:
foreach (DataRow row in YourDataTable.Rows)
{
YourComboBox.Items.Add(row);
}
You're basically loading each entire DataRow into your ComboBox, and the ComboBox is using the DataRow's default ToString() value, which is "System.Data.DataRow". You need to instead load your ComboxBox with one of the DataRow's fields, like this:
foreach (DataRow row in YourDataTable.Rows)
{
YourComboBox.Items.Add(row["column1"].ToString());
}
Update: You may have a typo in your DisplayMember property. This code:
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Rows.Add(1, "Bob");
dt.Rows.Add(2, "Doug");
dt.Rows.Add(3, "Beth");
comboBox1.ValueMember = "ID";
comboBox1.DisplayMember = "Name";
comboBox1.DataSource = dt;
works correctly, as expected, but DisplayMember is case-sensitive, so if I change the second-to-last line to:
comboBox1.DisplayMember = "name";
all the items in the ComboBox say "System.Data.DataRowView". I think you just need to check your column names.