2013-03-07 48 views
0

我得到這個錯誤:"ErrorExecuteReader: Connection property has not been initialized"VB.NET 2010:錯誤「ErrorExecuteReader:Connection屬性尚未初始化」

我想不通的問題是什麼。

Imports System.Boolean 
Imports System.Data.SqlClient 

Public Class Form1 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    End Sub 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim userID As String 
     Dim password As String 
     Dim conn As SqlConnection 
     Dim cmd As SqlCommand 
     Dim reader As SqlDataReader 

     userID = txtuser.Text 
     password = txtpassword.Text 
     txtuser.Text = Focus() 
     txtpassword.Visible = "False" 

     Try 
      conn = New SqlConnection("Data Source=XXXXXX;Initial Catalog=XXXXXXUser ID=XXXXXX;Password=XXXXXX") 
      cmd = New SqlCommand("Select user,password from userlog where user='" + userID + "' & password='" + password + "'") 

      conn.Open() 
      reader = cmd.ExecuteReader() 

      conn.Close()  

      If (String.Compare(password, 123) = 0) Then 
       MsgBox("Success") 
      End If 
     Catch ex As Exception 
      MsgBox("Error" + ex.Message()) 
     End Try 
    End Sub 
End Class 
+1

聖sql注入漏洞,蝙蝠俠!此外,它確實看起來像你用純文本存儲密碼,這是另一個巨大的禁忌。這段代碼實際上是乞求以不好的方式進行黑客攻擊。初學者只是一個小小的藉口:你得到一個免費贈品,但是現在你已經聽到了這些,這些問題是非常重要的,你應該讓他們成爲優先事項,並知道在完成第一個項目之前該怎麼做。 – 2013-03-07 04:42:29

回答

4

您的命令對象的連接屬性尚未設置。將它添加到你的構造函數,像這樣:

cmd = New SqlCommand("...", conn) 

或者設置連接屬性,像這樣:

cmd.Connection = conn 

順便說一句,這個錯誤應該是很容易趕上,如果你是在Visual Studio調試。

相關問題