首页 > 解决方案 > 为什么我得到值 System.Data.DataRowView?C#

问题描述

     Why do I get the value System.Data.DataRowView? c# + sqlserver 

我正在尝试将数据添加到我的表中,但是没有 system.Data.rowview 并且我不知道该怎么做,这样它就不会出现

为什么我得到值 System.Data.DataRowView?c# + sqlserver

这是我在 Checklixbox 中加载项目的地方

 public void Cargar_Requerimientos(string Id_CR)
        {
            cn.Open();

            SqlCommand cmd = new SqlCommand("SELECT Id_CR, Requisitos, Id_RS FROM  Requerimientos WHERE Id_CR =@Id_CR  ", cn);
            cmd.Parameters.AddWithValue("Id_CR", Id_CR);



            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            cn.Close();

            //DataRow dr = dt.NewRow();

            //dr["Requisitos"] = "Seleciona un Requisitos";
            // dt.Rows.InsertAt(dr, 0);
            ///////////////////////////////////////
            checkedListBox1.ValueMember = "Id_RS";
            checkedListBox1.DisplayMember = "Requisitos";
            checkedListBox1.DataSource = dt;


    //bool state = true; 
  // for (int i = 0; i < checkedListBox1.Items.Count; i++)
 //   checkedListBox1.SetItemCheckState(i, (state ? CheckState.Checked : CheckState.Unchecked));
            //dr = dt.NewRow();

enter code here
            try
            {
                //checkedListBox1.DataSource = dt.Columns[0].ToString();
                //dt.Columns[0].ToString();
                //checkedListBox1.DataSource = dt.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


        }

在这里,我将数据从 combobox1 上传到 checklistbox1

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        //    checkedListBox1.Enabled = false;
            {
                if (comboBox1.SelectedItem.ToString() == null)
                {
                    checkedListBox1.Enabled = true;
                }
            }
            if (comboBox1.SelectedValue.ToString() != null)
            {
                string Id_CR = comboBox1.SelectedValue.ToString();
                Cargar_Requerimientos(Id_CR);
            }

结果: 在此处输入图像描述 在此处输入图像描述

标签: c#sql-server

解决方案


CheckListBox 不直接支持 DataSource,这就是该属性对智能隐藏的原因。

通常在设置 DisplayMember 和 ValueMember 属性设置 DataSource 是正确的,以避免多次刷新调用,但为了避免您的问题,您必须先设置 DataSource 属性:

checkedListBox1.DataSource = dt;
checkedListBox1.ValueMember = "Id_RS";
checkedListBox1.DisplayMember = "Requisitos";

推荐阅读