从Microsoft Access检索一列数据

时间:2014-01-11 16:47:42

标签: c# database ms-access ado.net

我正在尝试用来自访问数据库的数据填充标签。 但是当我运行该程序时,标签就会消失。 与数据库的连接正在作为组合框 从中获取数据。这是到目前为止标签的代码。

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();
}

1 个答案:

答案 0 :(得分:3)

您需要从DataTable

中选择一行和一列
Lprijs.Text = source2.Rows[0].Columns[0].ToString();

如果您只想返回第一行的第一列,则可以改为:

using (var cmd = new OleDbCommand(query2, connection)) {
    Lprijs.Text = cmd.ExecuteScalar().ToString();
}

不需要OleDbDataAdapter,也不需要DataTableExecuteScalar返回第一行的第一列。 using语句会自动在语句块的末尾处理命令,即使发生异常终止语句块的异常也是如此。您也应该将连接括在using语句中;这可确保关闭和处理连接。

using (var connection = new OleDbConnection(connectionString)) {
    // TODO:  Prepare commands etc.
    connection.Open();
    // TODO: Execute queries, etc.
}