C# 为什么我不能在combobox中获得实际的选定值?
我有两个组合框C# 为什么我不能在combobox中获得实际的选定值?,c#,sql,combobox,C#,Sql,Combobox,我有两个组合框cmbfrom和cmbdest 从SQL数据库检索数据并将其设置为组合框值的代码如下: databaseserver ser = new databaseserver(); SqlConnection con = new SqlConnection(ser.dbserver + "Initial Catalog=AirlinesDB;Integrated Security=True"); con.Open(); SqlDataAdapter citiesadp = new Sql
cmbfrom
和cmbdest
从SQL数据库检索数据并将其设置为组合框值的代码如下:
databaseserver ser = new databaseserver();
SqlConnection con = new SqlConnection(ser.dbserver + "Initial Catalog=AirlinesDB;Integrated Security=True");
con.Open();
SqlDataAdapter citiesadp = new SqlDataAdapter("select city from cities",con);
DataSet dset = new DataSet(); //Creating instance of DataSet
citiesadp.Fill(dset,"cities");
cmbfrom.DataSource = dset.Tables["cities"];
cmbfrom.DisplayMember = "city";
con.Close();
SqlConnection con1 = new SqlConnection(ser.dbserver + "Initial Catalog=AirlinesDB;Integrated Security=True");
con1.Open();
SqlDataAdapter destcity = new SqlDataAdapter("select city from cities",con1);
DataSet destset = new DataSet();
destcity.Fill(destset,"cities");
cmbdest.DataSource = destset.Tables["cities"];
cmbdest.DisplayMember = "city";
con1.Close();
但是,当我在cmbdest
中选择一个值时,它返回的是System.Data.DataRowView
,而不是实际值
从组合框中检索选定值的代码如下:
textBox1.Text = cmbdest.SelectedValue.ToString();
textBox2.Text = cmbfrom.SelectedValue.ToString();
我从第一个组合(即所选城市名称)中获取实际值,但第二个组合获取值:
System.Data.DataRowView
您应该首先为cmbfrom
设置属性ValueMember
,请尝试以下代码:
databaseserver ser = new databaseserver();
SqlConnection con = new SqlConnection(ser.dbserver + "Initial Catalog=AirlinesDB;Integrated Security=True");
con.Open();
SqlDataAdapter citiesadp = new SqlDataAdapter("select city from cities",con);
DataSet dset = new DataSet(); //Creating instance of DataSet
citiesadp.Fill(dset,"cities");
cmbfrom.DataSource = dset.Tables["cities"];
cmbfrom.DisplayMember = "city";
cmbfrom..ValueMember= "city";
con.Close();
SqlConnection con1 = new SqlConnection(ser.dbserver + "Initial Catalog=AirlinesDB;Integrated Security=True");
con1.Open();
SqlDataAdapter destcity = new SqlDataAdapter("select city from cities",con1);
DataSet destset = new DataSet();
destcity.Fill(destset,"cities");
cmbdest.DataSource = destset.Tables["cities"];
cmbdest.DisplayMember = "city";
cmbdest..ValueMember= "city";
con1.Close();
尝试从中选择
CMB,然后会发生什么?然后是“cmbdest”的值是System.Data.DataRowView.
?否。。他们在组合框中得到了真实的城市名称,比如迪拜、孟买、洛杉矶等等,和什么一样?不明白你说的话吗?我对CMB没有任何问题。从它的工作来看,问题在于CMB。请不要使用“试试这个”表格。相反,解释为什么OP应该遵循你的建议以及他问题的原因。请更正代码,它有一些错误。