在MS Access中搜索包含特殊字符的字符串
问题描述:
我在搜索包含MS Access中特殊字符的长字符串时遇到问题。这是我的示例数据。在MS Access中搜索包含特殊字符的字符串
staff_Id | hashValue
1 | 4ENOA2838F09dbfTKXeAdEIKRM91MdsDg0W4pRNChdkGa7iwoVifWH9avZdjrPp1QqLJ0ecNe/X716HlwqfSYA==
这是我的SQL命令。
SELECT *
FROM table
WHERE hashValue='4ENOA2838F09dbfTKXeAdEIKRM91MdsDg0W4pRNChdkGa7iwoVifWH9avZdjrPp1QqLJ0ecNe/X716HlwqfSYA==';
我曾尝试使用谷歌搜索转义字符,但我无法得到这个工作。希望你能帮助我。谢谢。
P.S.我正在开发与MS-访问
UPDATE
这是在执行搜索查询我的C#程序我的SQL查询交互的C#程序。
string sqlStatement = "SELECT * FROM table WHERE hashValue = @hashedValue";
using (OleDbConnection connection = new OleDbConnection(connString))
{
using (OleDbCommand command = new OleDbCommand())
{
command.Connection = connection;
command.CommandText = sqlStatement;
command.Parameters.AddWithValue("@hashedValue", hashedValue);
ds = new DataSet(); //have been declared
dbAdapter = new OleDbDataAdapter(); //have been declared
dbAdapter.SelectCommand = command;
dbAdapter.Fill(ds, "table"); //empty dataset here
}
}
答
在C#
尝试写命令是这样的:
string hashValue = @"4ENOA2838F09dbfTKXeAdEIKRM91MdsDg0W4pRNChdkGa7iwoVifWH9avZdjrPp1QqLJ0ecNe/X716HlwqfSYA==";
string sql = string.Format("SELECT * FROM table WHERE hashValue = '{0}'", hashValue);
NOTIS字符串前的@标记。这可以让你有字符串,它看起来像这样:
string test = @" \ ";
Console.WriteLine(test); //output: \
在你的情况,你可以做这样的:
command.Parameters.AddWithValue("@hashedValue", @hashedValue);
,但如果将其设置-trick效果最好的@字符串声明时。
答
为什么不使用通配符编写查询?
SELECT *
FROM table
WHERE hashValue Like "*4ENOA2838F09dbfTKXeAdEIKRM91MdsDg0W4pRNChdkGa7iwoVifWH9avZdjrPp1QqLJ0ecNe/X716HlwqfSYA==*";
+0
我仍然无法得到它的工作:(但感谢您的输入 – Dale 2013-02-11 13:29:08
什么是错误信息? (如果有) – 2013-02-11 13:27:10
没有显示错误消息,但在执行此查询后它将返回一个空表。 – Dale 2013-02-11 13:30:22
其中是变量'hashedValue'声明?它正在被宣布为 – 2013-02-11 14:03:20