2011-03-27 2 views
0

현재 VB.NET의 페이지에서 검색 기능을 만들려고합니다.이 기능을 사용하면 txtSearch라는 텍스트 상자에서 customerID 데이터베이스를 검색 한 다음이를 DataGrid에 표시 할 수 있습니다.oledbDataAdapter 검색 함수 용 SQL

지금까지 나는

SELECT * FROM Customers WHERE CustomerID LIKE 'A%' 

을 사용하여 고객 ID의 수동을 표시 할 수 있지만 텍스트 상자에 입력 될 데이터로는 A를 교체하는 방법을 알아낼 질수.

답변

0

당신은이 같은 구문을 사용하여 쿼리에 전달하는 parameters를 사용할 수 있습니다 VB.NET에서

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

: 다음 코드를 사용

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을 피하십시오.