2011-03-27 51 views
0

我目前正在嘗試在VB.NET中的頁面上創建一個搜索功能,這將允許我從名爲txtSearch的文本框中搜索數據庫中的customerID,然後將其呈現到數據網格中。SQL for oledbDataAdapter搜索功能

到目前爲止,我可以用

SELECT * FROM Customers WHERE CustomerID LIKE 'A%' 

顯示在客戶的手工,但無法弄清楚如何使用將被輸入到文本框中的數據替換一個。

回答

0

您可以使用parameters在傳遞到查詢,使用的語法如下:

SELECT * FROM Customers 
WHERE CustomerID LIKE @SearchTerm + '%' 

在VB.NET:

Dim strQry as String = 
     "SELECT * FROM Customers WHERE CustomerID LIKE @SearchParam + '%'" 

Dim cmd as SqlCommand = new SqlCommand(strQry, connection) 
cmd.CommandType= CommandType.Text 

Dim prm As SqlParameter = new SqlParameter("@SearchParam",SqlDbType.VarChar,50) 
prm.Direction=ParameterDirection.Input 
prm.Value = txtUser.Text 
cmd.Parameters.Add(prm) 
0

嘗試使用下面的代碼(只是初始化連接):

Dim dataTable As New DataTable() 
Using connection As New OleDbConnection() 
    'connection.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", MapPath("~/App_Data/nwind.mdb")) 
    Dim adapter As New OleDbDataAdapter(String.Empty, connection) 
    adapter.SelectCommand.CommandText = String.Format("SELECT * FROM [Customers] WHERE [CustomerID] LIKE @SearchTerm + '%'") 

    Dim parameter As OleDbParameter = adapter.SelectCommand.Parameters.Add("@SearchTerm", OleDbType.VarChar) 
    parameter.Value = txtSearch.Text.Trim() 

    adapter.Fill(dataTable) 
End Using 

該方法將允許連接所需的SELECT狀態nt,並避免SQL Injections