2014-01-05 2 views
1

이것은 vb.net에서 내 sql 서버 선택 쿼리입니다.이 선택 쿼리가 잘못된 이유

Try 
    retrieveRecord("ProductBasicInfo", "ProdID = " & txtProdID.Text.Trim) 
    DataGridView1.DataSource = dsSql.Tables("ProductBasicInfo") 
    MessageBox.Show("ok") 
Catch ex As Exception 
    MessageBox.Show(ex.Message) 
End Try 

이 쿼리를 수신하는 기능이다

Public Sub retrieveRecord(ByVal tblname As String, ByVal parameter As String) 

    Try 
     If dsSql.Tables.Contains(tblname) Then 
      dsSql.Tables.Remove(tblname) 
     End If 

     cmdSql1.CommandText = "select * from " & tblname & "where " & parameter & "" 
     cmdSql1.Connection = Connect() 
     daSql.SelectCommand = cmdSql1 
     daSql.Fill(dsSql, tblname) 

    Catch ex As Exception 
     MessageBox.Show(ex.Message) 

    End Try 


End Sub 

그것은 오류 = 가까운 그 잘못된 구문을 제공? 내가 어디에서 실수하는지 안내해주세요.

+1

'tblname'과'where' 사이에는 공백이 없습니다. – MPelletier

답변

2
SQL 문

cmdSql1.CommandText = "select * from " & tblname & "where " & parameter & "" 

당신은 테이블 이름 사이에 공백을 삽입 무시됩니다 생성에

하고 절 ....

cmdSql1.CommandText = "select * from " & tblname & " where " & parameter & "" 

... 또한 종료 & ""은 부적절합니다.

+0

오, 나는 그것에 대해 알지 못했다. 당신의 헌신적 인 인도에 감사드립니다, 고맙습니다. – user87

0

tblname과 where 사이에 공백이 필요하며 txtProdID.Text.Trim을 따옴표로 묶어야합니다.

+1

값이 숫자 – EkriirkE

+0

인 경우 해당 인용 부호는 기술적으로 불필요하지만 해당 필드가 varchar이면 아무 것도 반환하지 않습니다. –

관련 문제