2014-04-20 6 views
0

Visual Studio 2012에서 VB로 코딩 중이며 테이블 데이터를 datagriddview로 가져 오는 쿼리를 만들어야합니다. 나는 사용자 입력을위한 텍스트 박스와 컬럼 이름을 설정하는 콤보 박스를 가지고있다. 일종의 "같은 * 콤보 상자처럼 텍스트 상자에서 제목 선택". 이 질문이 너에게 오래 되었으면 사과하지만 사방에 쳐다보고 내가 찾던 것을 찾을 수 없었다. 또한 나는 총 newb이므로 천천히 그리고 작은 말로 말해주십시오. 귀하의 도움에 미리 감사드립니다.쿼리가 텍스트 상자에서 가져오고 콤보 상자에서 열 이름을 설정합니다.

+0

** 제공 ** 이것은 DB 및 이러한 컨트롤에서 제공됩니다 사용자 검색을위한 것입니다. 'ComboBox.Text'는 열/필드 이름을 나타내야하고'TextBox.Text'는 검색 용어입니다. – Plutonix

답변

1

당신은 당신의 SQL이되고 수정해야합니다

"SELECT * FROM TITLES WHERE " & ComboBox1.Text & " LIKE '%" & TextBox1.Text & "%'" 
+0

나는 이것을 시도하고 여기에 "예상 끝"오류가 발생했습니다 내 코드 ~ sql = "SELECT * FROM TITLES WHERE"& ComboBox1.SelectedText "LIKE '%"& txtProd.Text & "%'" – McRhea

+0

@McRhea 답변이 업데이트되었습니다 ('&'추가됨). 코드를 포맷하는 동안 삭제 된 것 같습니다. –

1

데자뷰의 답변을 확인해야한다. 당신은 한 단계 더 걸릴 및 매개 변수를 사용하는 대신 사용자에서 직접 SQL 문자열을 구축하려고 할 수 있습니다 '이렇게 (보안 위험 인) SQL 주입을 방지 직접 입력 :

Dim Sql As String = "SELECT * FROM MYTABLE WHERE " & ComboBox1.Text & " LIKE '%?%' " 
Dim p As New OleDb.OleDbParameter : p.Value = Textbox1.text 
Dim OleDBCommand As New OleDb.OleDbCommand(Sql, Connection) 
OleDBCommand.Parameters.Add(p) 
Dim da As New OleDb.OleDbDataAdapter(OleDBCommand) 
Dim DT As New DataTable 
da.Fill(DT) 

(참고 : 저는' 사용자가 콤보 상자에서 항목을 선택해야하며 콤보 상자의 내용을 변경할 수 없다고 가정합니다.)

관련 문제