【问题标题】:OleDBException using Fill method of OleDbDataAdapterOleDBException 使用 OleDbDataAdapter 的 Fill 方法
【发布时间】:2010-11-02 16:55:48
【问题描述】:

我正在使用 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 都没有问题。我有什么遗漏吗?

【问题讨论】:

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


    【解决方案1】:

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

    字符串赋值和求值应该用单引号括起来。我相信@SerialNumber 是一个字符串。

    【讨论】:

    • 宾果游戏做到了!感谢 PradeepGB。我仍然不明白的是,为什么它适用于以字母开头的SN,但对于以数字开头的SN??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多