2013-02-16 119 views
0

我有這樣的代碼,填充與從MS Access數據的datagridview:如何在VB.Net 2010中調用MS Access 2010(.accdb)的查詢?

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?

+0

肯定。你試過了嗎?什麼是錯誤? – spajce 2013-02-16 16:19:20

+0

@spajce,不,我沒有試過,因爲我不知道從MS-Access內部調用查詢的命令。在我的問題中發佈的代碼就是我現在正在使用的代碼,正如您所看到的,查詢是使用vb.net進行硬編碼的。我想要做的是我想調用MS-Access中使用設計視圖創建的查詢。 – 2013-02-16 16:21:28

回答

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") 
+0

如何修改上述內容以便將標準傳遞到存儲的查詢中? – 2013-08-15 11:25:50