c#使用其他字段从数据库返回值

c#使用其他字段从数据库返回值,c#,sql-server,ado.net,C#,Sql Server,Ado.net,我有一个我想使用的Microsoft Access数据库。我已经建立了连接,可以将整个字段打印到listbox。但是有没有办法只搜索一个关键字,然后在另一个字段中返回另一个值? 例如,我想创建一个基本的聊天室之类的东西 其中数据库中有两个字段 +-----------------+----------------------+ | INPUT | Response | +-----------------+----------------------+

我有一个我想使用的Microsoft Access数据库。我已经建立了连接,可以将整个字段打印到listbox。但是有没有办法只搜索一个关键字,然后在另一个字段中返回另一个值? 例如,我想创建一个基本的聊天室之类的东西 其中数据库中有两个字段

+-----------------+----------------------+
| INPUT           |       Response       |
+-----------------+----------------------+
| hi              |  "hey, how are you?" |
| hello           |  "hi"                |
+-----------------+----------------------+
如果用户输入hi,它将搜索数据库,如果找到关键字,它将根据关键字返回响应字段? 我曾尝试在
oleDB
名称空间中使用reader函数,但没有成功。 老实说,我不知道从哪里开始聊天机器人的数据库端

class Program
{
    public void ResponseToUser(string userInput)
    {
        string connectionString = @"Your database path";
        using (OleDbConnection databaseConnection = new OleDbConnection(connectionString))
        {
            databaseConnection.Open();
            using (OleDbCommand command = new OleDbCommand("SELECT * FROM TableName", databaseConnection))
            {
                OleDbDataReader reader = command.ExecuteReader();
                string response = string.Empty;
                while (reader.Read())
                {
                    if (reader["Keyword"].ToString().Equals(userInput))
                    {
                        response = reader["Response"].ToString();
                        break;
                    }
                }
                reader.Close();
            } 
        }
    } 
}

好的,我编辑了完整解决方案的答案。不确定您以前是否以这种方式连接到数据库,但它应该可以工作。

您可能会更轻松,使用entityframework和CompactSQL数据库而不是access。获取IndexAutoFrangeException是if(reader[“Keyword”].ToString().Equals(userInput))@Evilk9我编辑了我的答案,如果您以前以这种方式连接到数据库,那么您应该尝试在此处查找答案:创建新数据集,然后创建DataRowCollection,然后实现我给您的解决方案。。