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