将组合框中的数据显示到datagridview

时间:2017-12-04 07:49:14

标签: c# database datagridview combobox

我正在尝试将组合框中的数据转换为datagrindview,但是当我运行该程序时,它会将datagrindview显示为空白!有什么建议 ? 谢谢



private void fillCombo()
         {
                 string query = "select DISTINCT FirstName,LastName from ActivityDataView";
                 myConnection.Open();
                 myCommand = new SqlCommand(query, myConnection);
                 myDataAdapter = new SqlDataAdapter(myCommand);
                
                 SqlDataReader dr = myCommand.ExecuteReader();
            
            while (dr.Read())
                 {
                     string name = String.Format("{0} {1} ",  dr["LastName"], dr["FirstName"]);
                     comboBox1.Items.Add(name);      
                }
            dr.Close();
          
     
            myConnection.Close();

        }  
        



 这是组合框的功能

         private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            string query = "select * from ActivityDataView where LastName='" + comboBox1.SelectedValue + "'";

            myConnection.Open();
                 myCommand = new SqlCommand(query, myConnection);

               myDataAdapter = new SqlDataAdapter(myCommand);
            DataSet myDataSet = new DataSet();

            myDataAdapter.Fill(myDataSet);  
           dataGridView1.DataSource = myDataSet.Tables[0];

             myConnection.Close();

        }

1 个答案:

答案 0 :(得分:0)

您的格式清楚地表明您在组合框中选择了姓氏和名字:

string name = String.Format("{0} {1} ",  dr["LastName"], dr["FirstName"]);

但是当您获取DataGridView的数据时,您会尝试将整个字符串与LastName行进行比较。

要解决此问题,您可以拆分组合框字符串并仅获取姓氏

string lastName = comboBox1.SelectedItem.ToString()
                .Split(new string[] { " "}, StringSplitOptions.RemoveEmptyEntries).First();