从第一列搜索值,并在VB.NET中的同一行返回第二列的值

时间:2016-01-03 16:55:07

标签: mysql vb.net

因此,用户输入他们的电子邮件以防忘记密码,输入被输入查询,其中选择电子邮件等于用户输入的电子邮件的地方,但我如何获得第二列中的密码值返回给用户?

我使用的代码是:

        Try
            If Not dbconn Is Nothing Then dbconn.Close()
            dbconn.ConnectionString = String.Format("server={0}; port=3306; user id={1}; password={2}; database={3}; pooling=true", server, userName, password, DatabaseName)

            dbconn.Open()

            query = String.Format("SELECT * FROM Testers WHERE Email='" + forgotEmail + "'")
            Try
               dbcomm = New MySqlCommand(query, dbconn)
               dbread = dbcomm.ExecuteReader()
               While dbread.Read()

               End While
               dbread.Close()

           Catch ex As Exception
               MsgBox(ex.ToString)
           End Try
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

但是在查询点之后该怎么办?

1 个答案:

答案 0 :(得分:4)

更新:由于提供的示例是关于密码的,并且应该非常注意密码安全性,我将从一些重要的要点开始这个(接受的)答案,并由其他人评论用户:

现在进行任务

  

从第一列搜索值,并从第二列返回值   在VB.NET的同一行

试试这个:

   String fieldval;

   While dbread.Read()

       fieldval = reader.GetString(reader.GetOrdinal("column2"))
       'Do something with fieldval

   End While

当然,在这种情况下,while循环应该只执行一次(即只应该有一个包含该电子邮件地址的记录)。

你也可以减少这个:

query = String.Format("SELECT * FROM Testers WHERE Email='" + forgotEmail + "'")

query = String.Format("SELECT column2 FROM Testers WHERE Email='" + forgotEmail +"'")

其中column2是该字段的名称。

当然,使用密码时,应始终非常小心。另请查看Plutonix的评论!