我正在尝试用来自访问数据库的数据填充标签。 但是当我运行该程序时,标签就会消失。 与数据库的连接正在作为组合框 从中获取数据。这是到目前为止标签的代码。
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string query2 = "SELECT Prijs FROM Klanten WHERE Naam='" + comboBox1.SelectedValue + "'";
OleDbDataAdapter prijsData = new OleDbDataAdapter(query2, connection);
DataTable source2 = new DataTable();
prijsData.Fill(source2);
Lprijs.Text = source2.ToString();
Lprijs.Update();
}
答案 0 :(得分:3)
您需要从DataTable
:
Lprijs.Text = source2.Rows[0].Columns[0].ToString();
如果您只想返回第一行的第一列,则可以改为:
using (var cmd = new OleDbCommand(query2, connection)) {
Lprijs.Text = cmd.ExecuteScalar().ToString();
}
不需要OleDbDataAdapter
,也不需要DataTable
。 ExecuteScalar返回第一行的第一列。 using
语句会自动在语句块的末尾处理命令,即使发生异常终止语句块的异常也是如此。您也应该将连接括在using
语句中;这可确保关闭和处理连接。
using (var connection = new OleDbConnection(connectionString)) {
// TODO: Prepare commands etc.
connection.Open();
// TODO: Execute queries, etc.
}