C# Visual Studio中带参数的Access查询

C# Visual Studio中带参数的Access查询,c#,vb.net,ms-access,visual-studio-2010,ms-access-2007,C#,Vb.net,Ms Access,Visual Studio 2010,Ms Access 2007,具有somecolumnname=[?]的Microsoft Access查询不会显示在Visual Studio中“新建数据源”向导的视图列表中 在MicrosoftAccess中,只要提示输入参数值,查询就可以完美地工作 查询的列应该基于两个文本框中的值填充我表单上的标签 在.NET应用程序中使用参数查询的“最佳做法”是什么 注意:如果适用,VB.NET答案优先于C#(两者都可以接受)。如果您这样做: somecolumnname = ? 而不是 somecolumnname = [?]

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

在MicrosoftAccess中,只要提示输入参数值,查询就可以完美地工作

查询的列应该基于两个文本框中的值填充我表单上的标签

在.NET应用程序中使用参数查询的“最佳做法”是什么

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

如果您这样做:

somecolumnname = ?
而不是

somecolumnname = [?]
看看这个:

你错过了什么步骤吗

如果您这样做:

somecolumnname = ?
而不是

somecolumnname = [?]
看看这个:

你错过了什么步骤吗


这是基于对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

     <...>
Dim cn作为新的OleDb.OleDb连接
Dim cmd作为新的OleDb.OleDbCommand
尝试
cn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;”_
“数据源=c:\Docs\Test.mdb;”
cn.Open()
cmd.Connection=cn
“这只是一个查询,不是一个过程,但这就是
''与Access一起工作
cmd.CommandType=CommandType.storedProcess
cmd.CommandText=“测试”
使用cmd.Parameters
.AddWithValue(“myparam”、“SomeVal”)
以

OLE DB提供程序:

这是基于对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

     <...>
Dim cn作为新的OleDb.OleDb连接
Dim cmd作为新的OleDb.OleDbCommand
尝试
cn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;”_
“数据源=c:\Docs\Test.mdb;”
cn.Open()
cmd.Connection=cn
“这只是一个查询,不是一个过程,但这就是
''与Access一起工作
cmd.CommandType=CommandType.storedProcess
cmd.CommandText=“测试”
使用cmd.Parameters
.AddWithValue(“myparam”、“SomeVal”)
以

OLE DB提供程序:

他正在尝试访问保存的访问查询。它可能作为存储过程公开。是否可能有一个包含“omecolumnname=?”的有效的已保存访问QueryDef?考虑到“?”是标准的Jet/ACE SQL单字符通配符(如SQL Server中的u),我认为它不会起作用。我对.NET一无所知,但Access参数查询更像是存储过程,而不是视图。如果他们没有出现在视图列表中,这并不奇怪。你的回答直接没有帮助。然而,你的链接为我指明了正确的方向。我刚刚从access中的查询中删除了
somecolumnname=?
,在
TableAdapter
中添加了一个查询,然后在新创建的
TableAdapter.FillBy
查询中添加了条件。很高兴知道链接对您有所帮助。他正在尝试访问保存的access查询。它可能作为存储过程公开。是否可能有一个包含“omecolumnname=?”的有效的已保存访问QueryDef?考虑到“?”是标准的Jet/ACE SQL单字符通配符(如SQL Server中的u),我认为它不会起作用。我对.NET一无所知,但Access参数查询更像是存储过程,而不是视图。如果他们没有出现在视图列表中,这并不奇怪。你的回答直接没有帮助。然而,你的链接为我指明了正确的方向。我刚刚从access中的查询中删除了
somecolumnname=?
,在
TableAdapter
中添加了一个查询,然后在新创建的
TableAdapter.FillBy
query中添加了条件。很高兴知道这些链接对您有所帮助。请大家检查这个问题。。这有点相似。。请大家核对一下这个问题好吗。。这有点相似。。