我正在用C#編寫一個應用程序,該應用程序使用System.Data.OleDb命名空間從.mdb文件讀取信息。我正在閱讀的表格包含有關樣本(數量,索引,日期等)的信息。當新項目添加到表格中時,數字和日期是必需條目,但索引是可選的,因此某些樣本沒有索引。我可以就好使用下面的代碼運行一個查詢:MS Access查詢「WHERE」異常
string id = "99";
OleDbConnection myConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\...\Database\data.mdb");
myConnection.Open();
OleDbCommand myCommand = myConnection.CreateCommand();
myCommand.CommandText = "SELECT SampNo, Index, DateTime FROM Sample WHERE SampNo=" + id;
OleDbDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}", myReader["SampRef"], myReader["Index"], myReader["DateTime"]);
}
不過,其實我是想查詢表和檢索基於索引值的樣品,所以我想通過替換查詢行這樣做:
myCommand.CommandText = "SELECT SampNo, Index, DateTime FROM Sample WHERE Index=" + id;
但是,當我運行它,它在「myCommand.ExecuteReader()」一行「條件表達式中的數據類型不匹配」拋出OleDbException。
我不是超流利的數據庫查詢,所以我假設有另一種方法來運行此查詢將工作。有什麼想法嗎??
好,我甚至沒有注意到 – LittleBobbyTables 2010-09-24 15:57:05