2010-11-02 86 views
0

我使用OleDbDataAdapter對象從數據庫中提取某些數據並將其放置在數據集對象中。此代碼如下介紹:使用OleDbDataAdapter的填充方法OleDBException

oleConn = new OleDbConnection(WebConfigurationManager.ConnectionStrings["PTDB-ConnectString"].ConnectionString); 
oleConn.Open(); 
oleComm = new OleDbCommand("spGetPartRevisionFromSN @SerialNumber = " + SN, oleConn); 
oleComm.CommandType = CommandType.Text; 
ds = new DataSet(); 
da = new OleDbDataAdapter(oleComm); 
da.Fill(ds); //<--OleDbException occurs here 

我的問題是,當程序到達數據適配器的Fill方法,我收到一個OleDbException與錯誤是「近‘SN’不正確的語法」,其中SN是一個字母數字序列號。我有幾個我正在測試的SN,我注意到的模式是,該方法似乎運行良好,以一個字母開頭的SN,例如, 「J123456」,但是對於以數字開頭的每個SN引發該例外,例如, 「1ABCDEF」。我不以任何方式篡改SN,它們只是字符串,並且我已經在SQL Server Management Studio中運行了存儲過程中定義的SELECT查詢,這兩種SN都沒有問題。有什麼我失蹤?

回答

0

試試這個:oleComm = new OleDbCommand(「spGetPartRevisionFromSN @SerialNumber ='」+ SN.tostring +「'」,oleConn);

字符串分配和評估應包含在單引號中。我相信@SerialNumber是一個字符串。

+0

賓果它做到了!謝謝PradeepGB。我仍然不明白的是,爲什麼它會以一封信開頭的SN起作用,但是對於以數字開頭的那些SNS而言會崩潰? – kingrichard2005 2010-11-02 18:03:15