C# 如何使用Visual C检索MS Access数据库中同一行上的数据#
我想知道如何使用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
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的建议,进一步清理代码。