2015-10-27 57 views
-1
private void button3_Click(object sender, EventArgs e) 
{ 
    try { 
     connection.Open(); 
     OleDbCommand command = new OleDbCommand(); 
     command.Connection = connection; 
     command.CommandText = "select action from rvrait"; 
     OleDbDataReader reader = command.ExecuteReader(); 
     richTextBox1.Text = (reader["action"].ToString()); 
     connection.Close(); 
    } 
    catch(System.Data.OleDb.OleDbException) 
    { 
    } 
+0

...什麼是連接字符串? – SteveFerg

+0

有沒有拋出異常? – user1666620

回答

0

您的問題是缺少reader.Read()調用。在創建OleDbDataReader之後,您無法開始獲取您感興趣的列的內容。最初,讀者沒有被定位在你的查詢返回的第一條記錄上(如果有的話)。

private void button3_Click(object sender, EventArgs e) 
{ 

    connection.Open(); 
    OleDbCommand command = new OleDbCommand(); 
    command.Connection = connection; 
    command.CommandText = "select action from rvrait"; 
    OleDbDataReader reader = command.ExecuteReader(); 
    if(reader.Read()) 
     richTextBox1.Text = (reader["action"].ToString()); 
    connection.Close(); 

} 

這樣你移動的第一條記錄的讀者,如果有一個真正由調用返回的閱讀,你可以把列的內容()。
此模式旨在幫助閱讀多條記錄。
例如...

List<string> listOfActions = new List<string>(); 
while(reader.Read()) 
    listOfActions.Add(reader["action"].ToString()); 

還請注意,我已經刪除了空的try/catch。如果你不打算對異常做任何事情,應該總是避免這種情況,因爲如果你離開,你實際上隱藏了可能的錯誤

相關問題