2010-12-02 36 views
0

什麼是錯我的代碼,我想選擇查詢是錯誤的:我的代碼有什麼問題,我認爲select查詢是錯誤的?

我有一個TextBox1中,TextBox2中和textbox3

當我在TextBox1中和電子郵件在TextBox2中在textbox3密碼鍵入員工ID,然後將根據員工ID和電子郵件在數據庫中檢索到...

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 
      'Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT Password FROM a1_admins WHERE EmployeeId" = TextBox1.Text And "Email" = TextBox2.Text, SQLData) 
      Dim SQLData As New System.Data.SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True") 
      Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT Password FROM a1_admins WHERE EmployeeId =" & TextBox1.Text & "And" & "Email" = TextBox2.Text, SQLData) 
      SQLData.Open() 
      Dim dtrReader As System.Data.SqlClient.SqlDataReader = cmdSelect.ExecuteReader() 
      If dtrReader.HasRows Then 
       While dtrReader.Read() 
        TextBox3.Text = dtrReader("Password") 
       End While 
      Else 
       TextBox3.Text = ("No customer found for the supplied ID.") 
      End If 

      dtrReader.Close() 
      SQLData.Close() 
     End Sub 
+1

那麼,實際的問題是什麼? – darioo 2010-12-02 08:56:49

回答

0

如果您發佈了實際的錯誤消息,那將會非常有用。

但是,我認爲你的SQL查詢缺少一些空格。它應該是:

Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT Password FROM a1_admins WHERE EmployeeId = " & TextBox1.Text & " And " & "Email = '" & TextBox2.Text & "'", SQLData)

編輯

在其他的答案,你真的應該使用參數指出。我提供了一個鏈接到MSDN article on using Parameters with the SQLCommand

+0

現在它給錯誤: 無法綁定多部分標識符「[email protected]」。 – 2010-12-02 09:00:30

0

試試這個(注意引號) - 假設EmloyeeId是一個int和電子郵件是某種VARCHAR

 
Dim cmdSelect As New System.Data.SqlClient.SqlCommand("SELECT Password FROM a1_admins WHERE EmployeeId =" & TextBox1.Text & " And Email = '" & TextBox2.Text & "'", SQLData) 
1

的你還沒有得到周圍的值引號,也沒有添加任何額外的空格。

真的是你的查詢應該有參數:

SELECT Password FROM a1_admins WHERE EmployeeId = @employeeID And Email = @email 
2
  1. 爲什麼不給你控制適當的名稱?
  2. 永遠不要通過字符串連接構建查詢字符串,而是使用SqlParameter(特別是在ASP.NET應用程序中!)以避免sql注入。
  3. 也許你也想使用HttpServerUtility.HtmlDecode,以避免在回發中注入JavaScript和其他討厭的東西。
  4. 使用用於SqlConnection和SqlDataReader等一次性對象
  5. 是的,它絕對是你的SQL。必須有語法錯誤,因爲查詢字符串沒有正確連接。