1

帮助,我的代码在 da.fill(dt) 上失败。错误说 OleDBexception 未处理 没有为一个或多个必需参数提供值

我的代码

        Dim Conn As OleDb.OleDbConnection = New OleDb.OleDbConnection
        Dim connString As String
        Dim da As OleDb.OleDbDataAdapter
        Dim dt As New DataTable
        Dim oCmd As OleDb.OleDbCommand
        Dim SQLString As String

        connString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & sRemoteAccessFolder & "Projects.MDB"
        Conn.ConnectionString = connString
        Conn.Open()
        SQLString = "select * from tblProjects where ProjectNumber='10100'"


        da = New OleDb.OleDbDataAdapter(SQLString, Conn)
        da.Fill(dt)

任何想法?

谢谢你

4

3 回答 3

1

这条线可能有问题:

SQLString = "select * from tblProjects where ProjectNumber='10100'"

字段 ProjectNumber 必须与表中的内容相匹配。如果有空格,则需要包括括号:

SQLString = "select * from tblProjects where [Project Number]='10100'"

如果是数字字段,则删除引号:

SQLString = "select * from tblProjects where [Project Number]=10100"

如果仍然有错误,请确保数据库中有一个名为 tblProjects 的表。

与往常一样,请确保使用参数而不是完全手动执行 sql 语句。这将避免潜在的 sql 注入问题。

于 2013-08-01T20:47:56.790 回答
0

我已经很久没有使用它了。但可以按照以下方式进行。

  connString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & sRemoteAccessFolder &  "Projects.MDB"
  Conn.ConnectionString = connString
  Conn.Open()

  Dim oCmd As new OleDb.OleDbCommand
  oCmd.CommandText= "select ...."
  Dim da As OleDb.OleDbDataAdapter
  Dim dt As New DataTable

  da = New OleDb.OleDbDataAdapter(oCmd)
  da.Fill(dt)
于 2013-08-01T20:55:53.960 回答
0

同样的事情也发生在我的项目中。

SQLString = "select * from tblProjects where ProjectNumber='10100'"

我也遵循同样的方法并得出这样的结论,它对我有帮助。对我有用的正确陈述是

SQLString = "select * from tblProjects where [ProjectNumber]='10100'"
于 2019-02-21T02:26:45.740 回答