使用VB.NET中的Access 2007查询

使用VB.NET中的Access 2007查询,vb.net,ms-access-2007,Vb.net,Ms Access 2007,我有一个access数据库设置,我正在通过ODBC连接到该设置,access文件已经生成了所有必需的查询,我只想从我的应用程序中调用它们 我正在使用Visual Basic.NET,这是我迄今为止尝试过的 提前感谢您提供的任何帮助 本 那么,你的问题是什么 查看上面的代码,您不需要dataAdapter。 您可以调用command.ExecuteOnQuery来完成这项工作 编辑:另外,您可以将OdbcConnection&odbc命令包装在using…end-using块中。下面是VB代码 P

我有一个access数据库设置,我正在通过ODBC连接到该设置,access文件已经生成了所有必需的查询,我只想从我的应用程序中调用它们

我正在使用Visual Basic.NET,这是我迄今为止尝试过的

提前感谢您提供的任何帮助


那么,你的问题是什么

查看上面的代码,您不需要dataAdapter。 您可以调用command.ExecuteOnQuery来完成这项工作

编辑:另外,您可以将OdbcConnection&odbc命令包装在using…end-using块中。

下面是VB代码

Public Sub AddClient(ByVal abn As String, ByVal companyName As String, _
                     ByVal contactName As String, ByVal phoneNumber As String, _
                     ByVal address As String)
    'Dim command As OdbcCommand = New OdbcCommand
    Using cnx As New OdbcConnection(My.Settings.connectionString)
        Using command As New OdbcCommand
            command.Connection = cnx
            command.CommandText = "sp_InsertClient"
            command.CommandType = CommandType.StoredProcedure

            '//====== create ABN paramenter =============
            Dim param1 As OdbcParameter = New OdbcParameter("inABN", abn)
            param1.Direction = ParameterDirection.Input
            param1.DbType = DbType.String
            'add abn parameter
            command.Parameters.Add(param1)

            '//====== create CompanyName Parameter ================
            Dim param2 As OdbcParameter = New OdbcParameter("inCompanyName", companyName)
            param2.Direction = ParameterDirection.Input
            param2.DbType = DbType.String
            'add the parameter
            command.Parameters.Add(param2)

            '//======== create ContactName Param ===============
            Dim param3 As OdbcParameter = New OdbcParameter("inContactName", contactName)
            param3.Direction = ParameterDirection.Input
            param3.DbType = DbType.String
            'add the parameter
            command.Parameters.Add(param3)

            '//=========== create PhoneNumber Parameter ===============
            Dim param4 As OdbcParameter = New OdbcParameter("inPhoneNumber", phoneNumber)
            param4.Direction = ParameterDirection.Input
            param4.DbType = DbType.String
            'add paramater
            command.Parameters.Add(param4)

            '//=========== create Address Parameter ===============
            Dim param5 As OdbcParameter = New OdbcParameter("inAddress", address)
            param5.Direction = ParameterDirection.Input
            param5.DbType = DbType.String
            'add paramater
            command.Parameters.Add(param5)

            Try
                cnx.Open()
                command.ExecuteNonQuery()
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error", _
                                MessageBoxButtons.OK, MessageBoxIcon.Error)

                Exit Sub
            End Try
        End Using
    End Using
    MessageBox.Show("DONE")
End Sub
这是我在Access中的查询

INSERT INTO tblClients ( ABN, CompanyName, ContactName, PhoneNumber, Address )
VALUES ([inABN], [inCompanyName], [inContactName], [inPhoneNumber], [inAddress]);
感谢所有的帮助…

编辑了我的旧答案。。。这是错误的

根据和,你做得对


在access中使用预构建查询的另一种方法是将它们定义为access中的存储过程。这是一个很好的概述。

感谢他们的链接,我已经看到了它们,但错过了添加EXECUTE,它似乎正在运行查询,但我的参数尚未传递到access查询

我已经测试,我的参数已添加到命令中,但未添加到access查询中

我还尝试了Parameters.AddWithValueparamname,value

但这是同样的结果

此外,我还更改了我的查询以访问此,在不需要的地方显示了方括号

插入tblClients ABN、CompanyName、ContactName、PhoneNumber、Address 值inABN、UNCOMNYNAME、inContactName、inPhoneNumber、inAddress

谢谢
Ben

很抱歉,我应该解释更多,我删除了dataAdapter,只使用了command.ExecuteOnQuery,但仍然是相同的错误无效SQL语句;应为“删除”、“插入”、“过程”、“选择”或“更新”。我的问题是,当查询在access中运行时,代码可能会有什么问题。编辑代码并显示您目前拥有的代码以及sp_插入的代码。
INSERT INTO tblClients ( ABN, CompanyName, ContactName, PhoneNumber, Address )
VALUES ([inABN], [inCompanyName], [inContactName], [inPhoneNumber], [inAddress]);