这是一个基本的ComboBox
,代码如下:
private void hotel_Selection()
{
con = new SqlConnection(constr);
con.Open();
cmd = new SqlCommand("SELECT * FROM HOTEL WHERE HOTEL_CITY = @CITY", con);
cmd.Parameters.AddWithValue("@CITY", citiesID);
SqlDataReader dr1;
dr1 = cmd.ExecuteReader();
DataTable dt1 = new DataTable();
dt1.Columns.Add("ID", typeof(int));
dt1.Columns.Add("NAME", typeof(string));
dt1.Load(dr1);
hotelCbox.ValueMember = "ID";
hotelCbox.DisplayMember = "NAME";
hotelCbox.DataSource = dt1;
hotelCbox.SelectedIndex = -1;
con.Close();
}
当我尝试从A-Z中对ComboBox
进行排序时,会出现问题。如果我没有将sorted属性设置为true它可以工作,但是一旦我尝试将该属性设置为true,它就会给我System.Data.DataRowView
的错误,它正在慢慢地让我发疯。任何想法是什么我做错了,也许是因为它是sql或者我在路上遗漏了什么。
答案 0 :(得分:1)
正如Sorted
财产的文件所述:
尝试在数据绑定控件上设置
Sorted
属性会引发 一个ArgumentException。您必须使用基础数据对数据进行排序 模型。
要解决此问题,您可以通过将排序表达式分配给其DataTable
的{{3}}属性来对DefaultView
进行排序。
属性的值可以是列名,后跟ASC
进行升序排序,DESC
进行降序排序。默认情况下,列按升序排序。您可以通过用逗号分隔排序表达式来对多个列应用排序。
dt1.DefaultView.Sort = "Name";
您还可以通过添加Sort
:
SELECT * FROM HOTEL WHERE HOTEL_CITY = @CITY ORDER BY Name