2017-07-18 33 views
-2

請我想知道如何使用Visual C#如何使用Visual C#來檢索在MS Access數據庫中同一行數據

在MS Access數據庫中檢索同一行數據我想從組合框中選擇一個關鍵字的含義

這是我的代碼;

private void cmd_SearchResult_Click(object sender, EventArgs e) 

{ 

    connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; 
      Data Source=C:\Users\hp\Documents\KnowledgeBase.accdb; 
      Persist Security Info=False;"; 

    using (var conn = new OleDbConnection(connection.ConnectionString)) 
    using (var command = connection.CreateCommand()) 
    {     
     command.Connection = conn; 
     command.CommandText = "select Meaning from KnowledgeBase where Keyword = @Keyword"; 
     command.Parameters.AddWithValue("Keyword", String.Copy(cbo_SearchResult.Text)); 
     connection.Open(); 
     var reader = command.ExecuteReader(); 
     while (reader.Read()) 
     { 
      lbl_Display.Text = reader["Meaning"].ToString(); 

     } 
    } 
} 
+0

在我看來,就像你得到了帶有該代碼的'[Keyword]'的'[含義]'。究竟發生了什麼問題? – Crowcoder

+0

嗯,什麼是變量_connection_?你在哪裏初始化它? – Steve

+2

您未打開分配給該命令的連接。這是命令的連接,但是你改變了它。所以你會得到一個異常,通常你會在你的問題中包含一些異常。 – Crowcoder

回答

0

嘗試更類似於以下內容。我不確定「連接」對象是什麼,但放下一個簡單的字符串,如圖所示。

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; 
     Data Source=C:\Users\hp\Documents\KnowledgeBase.accdb; 
     Persist Security Info=False;"; 

using (var conn = new OleDbConnection(connectionString)) 
{ 
    conn.Open(); 
    using (var command = conn.CreateCommand()) 
    {     
     command.CommandType = CommandType.Text; 
     command.CommandText = "select Meaning from KnowledgeBase where Keyword = @Keyword"; 

     command.Parameters.AddWithValue("Keyword", cbo_SearchResult.Text); 

     object result = command.ExecuteScalar(); 

     if (result != null) 
     { 
      lbl_Display.Text = result.ToString(); 
     } 
    } 
} 
+0

如果你要糾正OP的代碼,你可能想指出在循環中設置標籤的文本是毫無意義的,應該考慮ExecuteScalar,不鼓勵AddWithValue,並且不需要String.Copy。 – Crowcoder

+0

這工作得很好 –

+0

根據@Crowcoder的建議進一步清理代碼。 –

相關問題