2013-02-11 199 views
0

我在搜索包含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 
    } 
} 
+0

什麼是錯誤信息? (如果有) – 2013-02-11 13:27:10

+0

沒有顯示錯誤消息,但在執行此查詢後它將返回一個空表。 – Dale 2013-02-11 13:30:22

+0

其中是變量'hashedValue'聲明?它正在被宣佈爲 – 2013-02-11 14:03:20

回答

2
在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效果最好的@字符串聲明時。

+0

您好Jens,是否有可能在C#中的參數化查詢中添加'@'?如果可能的話,是否可以,如果你要顯示我的代碼?謝謝 – Dale 2013-02-11 13:43:24

+0

好的 - 請顯示你的代碼(C#)引發查詢:),然後我會更新答案。 – 2013-02-11 13:47:09

+0

我已經更新了我的答案:)謝謝 – Dale 2013-02-11 13:56:31

0

爲什麼不使用通配符編寫查詢?

SELECT * 
FROM table 
WHERE hashValue Like "*4ENOA2838F09dbfTKXeAdEIKRM91MdsDg0W4pRNChdkGa7iwoVifWH9avZdjrPp1QqLJ0ecNe/X716HlwqfSYA==*"; 
+0

我仍然無法得到它的工作:(但感謝您的輸入 – Dale 2013-02-11 13:29:08

相關問題