C# 如何使用Visual C检索MS Access数据库中同一行上的数据#

C# 如何使用Visual C检索MS Access数据库中同一行上的数据#,c#,ms-access-2013,C#,Ms Access 2013,我想知道如何使用Visual C检索MS Access数据库中同一行上的数据# 当从组合框中选择关键字时,我想从数据库中获取关键字的含义 这是我的密码 private void cmd_SearchResult_Click(object sender, EventArgs e) { connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users

我想知道如何使用Visual C检索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();

        }
    }
}

尝试下面的方法。我不确定“connection”对象是什么,但让我们使用一个简单的字符串,如图所示

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

在我看来,你似乎得到了一个
[关键字]
[意思]
。到底出了什么问题?嗯,变量连接是什么?您在哪里初始化它?您没有打开分配给该命令的连接。这是命令的连接,但是你改变了它。因此,您将得到一个异常,这通常是您将在问题中包含的。如果您要更正OP的代码,您可能希望指出,在循环中设置标签的文本是毫无意义的,应该考虑ExecuteScalar,不鼓励使用AddWithValue,也不需要String.Copy。根据@Crowcoder的建议,进一步清理代码。