2010-11-02 79 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