2014-01-11 45 views
1

我試圖用來自訪問數據庫的數據填充標籤。 但是,當我運行該程序的標籤消失。 與數據庫的連接正在工作,因爲組合框 從中獲取其數據。這是迄今爲止標籤的代碼。檢索數據文件的一列Microsoft Access

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

Lprijs.Text = source2.ToString();不要將完整的數據表綁定到label.text – Jim

回答

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. 
} 
相關問題