данные возвращались ненормально при использовании команды SelectCommand.Параметры.Значение addwith

#asp.net

#asp.net

Вопрос:

результат DT.Строк(0).Item(«CID») возвращен как 0, когда я попытался использовать следующий код.

Но строки DT. (0).Item(«имя пользователя») и строки DT. (0).Item («имя 1») оба возвращены правильно.

Есть какие-нибудь советы?

Между тем, это хороший способ предотвратить взлом? TQ

 Protected Sub btn_submit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_submit.Click   DT = customer.login_secured("login", Me.txt_username_login.Text.Trim, password.Encrypt(Me.txt_password_login.Text.Trim))   If DT.Rows.Count gt; 0 Then   Response.Write(DT.Rows(0).Item("CID") amp; "lt;brgt;")  Response.Write(DT.Rows(0).Item("username") amp; "lt;brgt;")  Response.Write(DT.Rows(0).Item("name1"))   End If   End Sub   Public Function login_secured(ByVal action As String, ByVal username As String, ByVal password As String) As DataTable   Dim ConnStr As String = "DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=localhost;DATABASE=mydatabase;UID=username;PASSWORD=7Dbu#v36;Charset=UTF8;OPTION=3;"  Dim MyConn As New OdbcConnection(ConnStr)  Dim mydataadapter As OdbcDataAdapter  Dim mydatatable As DataTable   If action = "login" Then  Str = "SELECT * FROM customer_general cg INNER JOIN customer_detail cd ON cg.CID = cd.CID WHERE cg.username=? AND cg.password=?"  End If   Try  mydataadapter = New OdbcDataAdapter(Str, MyConn)  mydataadapter.SelectCommand.Parameters.AddWithValue("", username)  mydataadapter.SelectCommand.Parameters.AddWithValue("", password)  mydatatable = New DataTable  mydataadapter.Fill(mydatatable)  Catch ex As Exception  errormsg = ex.Message  End Try   If Not MyConn Is Nothing Then  MyConn.Close()  End If   Return mydatatable   End Function