【问题标题】:Access Query With Parameters in Visual Studio在 Visual Studio 中使用参数访问查询
【发布时间】:2010-09-03 18:42:58
【问题描述】:

带有somecolumnname = [?] 的 Microsoft Access 查询不会显示在 Visual Studio 的新建数据源向导的视图列表中。

只需提示输入参数值,即可在 Microsoft Access 中完美运行查询。

查询的列应根据几个文本框中的值填充表单上的标签。

在我的 .NET 应用程序中使用参数查询的“最佳实践”方式是什么?

注意:如果适用,VB.NET 的答案优先于 C#(两者都可以接受)。

【问题讨论】:

标签: c# vb.net ms-access visual-studio-2010 ms-access-2007


【解决方案1】:

如果你这样做会怎样:

somecolumnname = ?

而不是

somecolumnname = [?]

看看这个:

Paremeters in TableAdapter not accepted

你是不是错过了一些步骤?

How to: Connect to Data in an Access Database

Walkthrough: Connecting to Data in an Access Database (Windows Forms)

【讨论】:

  • 他正在尝试访问已保存的 Access 查询。它可能会暴露为 sproc。
  • 是否可以使用“omecolumnname = ”保存有效的 Access QueryDef?在里面?鉴于 ”?”是标准的 Jet/ACE SQL 单字符通配符(就像 SQL Server 中的 _),我认为它不会起作用。
  • 我对.NET一无所知,但Access参数查询更像是一个SPROC而不是一个VIEW。如果它们没有出现在 VIEW 列表中也就不足为奇了。
  • 您的回答直接没有帮助。但是,您的链接为我指明了正确的方向。我刚刚从访问中的查询中删除了somecolumnname = ?,向TableAdapter 添加了一个查询,然后将条件添加到了新创建的TableAdapter.FillBy 查询中。
  • 很高兴知道这些链接对您有所帮助。
【解决方案2】:

这是基于对 Access 的一点了解,而不是 VB.Net,但它可能会有所帮助。

    Dim cn As New OleDb.OleDbConnection
    Dim cmd As New OleDb.OleDbCommand

    Try
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
       "Data Source=c:\Docs\Test.mdb;"
        cn.Open()

        cmd.Connection = cn
        ''It is just a query, not a procedure, but this is what
        ''works with Access
        cmd.CommandType = CommandType.StoredProcedure
        cmd.CommandText = "test"
        With cmd.Parameters
            .AddWithValue("myparam", "SomeVal")
        End With

     <...>

OLE DB 提供者:http://www.carlprothman.net/Default.aspx?tabid=87#OLEDBProviderForMicrosoftJet

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-02
    • 2015-03-11
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    相关资源
    最近更新 更多