2016-10-27 56 views
1

在C#我想用訪問的數據來填充我的textBox我使用ADO.Net要連接到access.So到目前爲止,我已經得到了這一點:要填寫文本框訪問數據

OleDbConnection con = new OleDbConnection(Price.constr); 
     OleDbCommand cmd = new OleDbCommand(); 
     cmd.Connection=con; 
     cmd.CommandText = "select * from Table1"; 
     OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 

價格.constr是我的連接字符串。 (例如)

+0

用這種方法讀取表1的全部內容。如果您只想讀取一條記錄,則需要爲查詢添加WHERE語句。如果只有一條記錄使用OleDbDataReader而不是通過適配器填充DataTable – Steve

+0

@Steve我不知道命令填充文本框我知道它與dataGridView通過選擇行,但我不知道如何沒有dataGridView。 – Rjey

回答

1

如果你想從你的表中只讀取一條記錄,那麼就沒有必要返回整個表,並且不需要返回整個表,使用適配器來填充數據表。你可以簡單地問數據庫只返回記錄你感興趣的內容。

string cmdText = "select * from Table1 WHERE ID = 1"; 
using(OleDbConnection con = new OleDbConnection(Price.constr)) 
using(OleDbCommand cmd = new OleDbCommand(cmdText, con)) 
{ 
    con.Open(); 
    using(OleDbDataReader reader = cmd.ExecuteReader()) 
    { 
     if(reader.Read()) 
      textBox1.Text = reader["Price"].ToString(); 
     else 
      textBox1.Text = "No record found"; 
    } 
} 

我附上連接,指揮和讀者在使用語句,因爲這些都是一次性的對象,它是摧毀他們一個很好的做法當你完成使用它們時。 (特別是連接可能會導致問題,如果你不處理它)

另請注意,我已經使用常量1來檢索記錄。我敢打賭,你想這是動態的,在這種情況下,我建議你看看如何PARAMETRIZE你的查詢。 (不要做字符串連接)

+0

這是不是工作的人:(。 – Rjey

+0

請解釋。你有錯誤信息嗎? – Steve

+0

沒有沒有任何錯誤消息我把這個東西,你在表單加載函數中寫入,但它不會將數據該文本框 – Rjey