OleDBException使用OleDbDataAdapter的Fill方法

时间:2010-11-02 16:55:48

标签: c# asp.net sql visual-studio sql-server-2005

我正在使用OleDbDataAdapter对象从数据库中获取某些数据并将其放在数据集对象中。代码如下:

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都没有问题。有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

试试这个:oleComm = new OleDbCommand(“spGetPartRevisionFromSN @SerialNumber ='”+ SN.tostring +“'”,oleConn);

字符串赋值和评估应包含在单引号中。我相信@SerialNumber是一个字符串。