我正在尝试将组合框中的数据转换为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();
}
答案 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();