如何在VB.Net 2010中从MS Access 2010(.accdb)调用查询?

时间:2013-02-16 16:16:34

标签: vb.net ms-access

我有这个代码使用来自ms access的数据填充datagridview:

Dim con As New OleDbConnection  
Dim ds As New DataSet  
Dim da As OleDb.OleDbDataAdapter  
Dim Sql As String

Sql = "SELECT * FROM myTable WHERE case_no=?"  
Try  
  con.ConnectionString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=Sample.accdb;Persist Security Info=True;Jet OLEDB:Database Password=dbadmin2010"  
    con.Open()  
    Dim cmd As OleDbCommand = New OleDbCommand(Sql, con)  
    da.SelectCommand = cmd  
    cmd.Parameters.AddWithValue("case_no", case_no)  

    Dim ds As DataSet = New DataSet  
    da.Fill(ds, "Case Info")  
    DataGridView1.DataSource = ds.Tables("Case Info")  

Catch ex As Exception  
    MsgBox(ex.Message)  
End Try

现在我刚从MS Access中的设计视图中创建了一个查询,有没有办法调用该查询并将结果检索到我的datagridview?

1 个答案:

答案 0 :(得分:1)

只需使用查询名称并设置命令类型,例如,除了您已有的内容之外,您还可以使用以下注释:

Try
    con.ConnectionString = enter_connection_string_here 
    con.Open()
    cmd.Connection = con
    cmd.CommandType = CommandType.StoredProcedure
    cmd.CommandText = "NameOfQuery"
    da.SelectCommand = cmd
    cmd.Parameters.AddWithValue("case_no", case_no)

    da.Fill(ds, "Case Info")