当我在组合框中获取SelectedItem时返回System.Data.DataRowView

Ami*_*min 2 c# combobox

这是sql to combobox中的retrive两个字段的函数: 代码:

public void FillCmbKala()
    {
        cmbKala.Items.Clear();
        objCon.Connecting();
        string SQL = "SELECT [kID],[kName] FROM tblKala ORDER BY kName";
        DataSet ds = new DataSet();
        using (SqlConnection cn = new SqlConnection(objCon.StrCon))
        {
              using (SqlDataAdapter adapter = new SqlDataAdapter(SQL, cn))
              {

                  cn.Open();

              try
              {
                  adapter.Fill(ds);
              }
              catch (SqlException e)
              {

                  MessageBox.Show("There was an error accessing your data of 'Kala'. DETAIL: " + e.ToString());
              }
              finally
              {
                 cn.Close();
              }
          }
     }
     cmbKala.DataSource = ds.Tables[0];
     cmbKala.DisplayMember = "kName";
     cmbKala.ValueMember = "kID";
}
Run Code Online (Sandbox Code Playgroud)

当我使用组合框返回System.Data.DataRowView!

例如 :

string str= cmbKala.SelectedItem;
Run Code Online (Sandbox Code Playgroud)

结果是: str = System.Data.DataRowView

Has*_*san 5

这是MSDN参考.

作为SelectedItem返回Object.它返回选中的特定行对象.以下是您将获得价值的方式:

DataRowView oDataRowView = cmbKala.SelectedItem as DataRowView;
string sValue = string.Empty;

if (oDataRowView != null) {
   sValue = oDataRowView.Row["kName"] as string;
}
Run Code Online (Sandbox Code Playgroud)


小智 5

 DataRowView dv = (DataRowView)comboBox1.SelectedItem;
        string s = (string)dv.Row["kName"];
        int m1 = (int)dv.Row["kID"];
Run Code Online (Sandbox Code Playgroud)