Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我不能在combobox中获得实际的选定值?_C#_Sql_Combobox - Fatal编程技术网

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应该遵循你的建议以及他问题的原因。请更正代码,它有一些错误。