开发者

MySqlDataReader giving error at build

开发者 https://www.devze.com 2022-12-30 05:13 出处:网络
I have a function in VB.NET that authenticates a user towards a MySQL database before launching the main application. Here\'s the code of the function:

I have a function in VB.NET that authenticates a user towards a MySQL database before launching the main application. Here's the code of the function:

    Public Function authConnect() As Boolean
    Dim dbserver As String
    Dim dbuser As String
    Dim dbpass As String
    dbserver = My.Settings.dbserver.ToString
    dbuser = My.Settings.dbuser.ToString
    dbpass = My.Settings.dbpass.ToString
    conn = New MySqlConnection
    myConnString = "server=" & dbserver & ";" & "user id=" & dbuser & ";" & "password=" & dbpass & ";" & "database=rtadmin"
    Dim myCommand As New MySqlCommand
    Dim myAdapter As New MySqlDataAdapter
    Dim myData As New DataTable
    Dim myDataReader As New MySqlDataReader
    Dim query As String

    myCommand.Parameters.Add(New MySqlParameter("?Username", login_usr_txt.Text))
    myCommand.Parameters.Add(New MySqlParameter("?Password", login_pass_txt.Text))
    query = "select * from users where user = ?Username and passwd = ?Password"
    conn.ConnectionString = myConnString
    Try
        conn.Open()
        Try
            myCommand.Connection = conn
            myCommand.CommandText = query
            myAdapter.SelectCommand = myCommand
            myDataReader = myCommand.ExecuteReader
            If myDataReader.HasRows() Then
                MessageBox.Show("You've been logged in.", "RT Live! Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Catch ex As Exception

        End Try
    Catch ex As Exception

    End Try
End Function    

The function is not yet complete, there are a few other things that need to be done before launching the application, since I'm using a MessageBox to display the result of the login attempt.

The error that I'm getting is the foll开发者_Go百科owing:

Error 1 'MySql.Data.MySqlClient.MySqlDataReader.Friend Sub New(cmd As MySql.Data.MySqlClient.MySqlCommand, statement As MySql.Data.MySqlClient.PreparableStatement, behavior As System.Data.CommandBehavior)' is not accessible in this context because it is 'Friend'. C:\Users\Mario\documents\visual studio 2010\Projects\Remote Techs Live!\Remote Techs Live!\Login.vb 43 13 Remote Techs Live!

Any ideas?


It makes no sense to try to create a MySqlDataReader and then throw it away!

First you do this to attempt to create a reader:

    Dim myDataReader As New MySqlDataReader

Then later you attempt to throw that away when you do this:

    myDataReader = myCommand.ExecuteReader

Just remove the New from your initial declaration. I suspect that the constructor for the MySqlDataReader is not publicly accessible.


You could try the .AddWithValue instead of .Add.

For example:

cmd.Parameters.AddWithValue("?Username", login_usr_txt.Text)
0

精彩评论

暂无评论...
验证码 换一张
取 消