C#和本地数据库(访问)
问题描述:
我需要帮助显示listbox
输出到标签的数据。 在listbox
一切都加载(我需要看到Firstname
和LastName
),但它不会在标签上写任何东西 - 总是一个错误。C#和本地数据库(访问)
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string query = "SELECT * FROM Tab1 WHERE groupA='" + listBox1.Text + "' ORDER BY FirstName";
command.CommandText = query;
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
listBox3.Items.Add(reader["FirstName"].ToString() + " " + reader["LastName"].ToString());
}
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show("ERROR" + ex);
}
}
listBox3_SelectedINdexChanged
private void listBox3_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string query = "select * from Tab1 where FirstName=" + listBox2.Text + "";
command.CommandText = query;
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
label6.Text = reader["FirstName"].ToString();
label8.Text = reader["LastName"].ToString();
label10.Text = reader["GroupPolice"].ToString();
}
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show("ERROR" + ex);
}
}
答
更改第二个查询:
string query = "select * from [Tab1] where FirstName='" + listBox2.Text + "'";
而且while (reader.Read())
到:
if (reader.Read())
'总是error.'总是告诉我们的错误。 – LarsTech
你必须使用参数来避免sql注入和格式错误,这可能是你的问题。一个标签只能显示一个值,所以while循环没有意义。使用'if(reader.Read())'代替。 – LarsTech