【问题标题】:Why am I not getting actual selected values in combobox?为什么我没有在组合框中获得实际选择的值?
【发布时间】:2014-01-23 13:15:20
【问题描述】:

我有两个组合框 cmbfromcmbdest..

从 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,然后会发生什么?那么'cmbdest'的值是System.Data.DataRowView.
  • No .. 他们在组合框中获得实际城市名称,如迪拜、孟买、拉等,与 cmbfrom 相同

标签: c# sql combobox


【解决方案1】:

您应该首先为cmbfrom 设置属性ValueMember

【讨论】:

  • 什么?没听懂你说什么?
  • 我对 cmb 的作品没有任何问题,问题在于 cmbdest
  • 见上面 Abdur Ra​​him 的回答
【解决方案2】:

请尝试以下代码:

    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();

【讨论】:

  • 请避免使用“试试这个”表单。相反,请解释为什么 OP 应该遵循您的建议以及他的问题的原因。更正你的代码,它有一些错误。
猜你喜欢
  • 1970-01-01
  • 2020-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
相关资源
最近更新 更多