MySqlDataReader дает ошибку при сборке - PullRequest
1 голос
/ 12 мая 2010

У меня есть функция в VB.NET, которая проверяет подлинность пользователя в базе данных MySQL перед запуском основного приложения. Вот код функции:

    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    

Функция еще не завершена, есть несколько других вещей, которые необходимо сделать перед запуском приложения, так как я использую MessageBox для отображения результата попытки входа в систему.

Я получаю следующую ошибку:

Ошибка 1 'MySql.Data.MySqlClient.MySqlDataReader.Friend Sub New (cmd As MySql.Data.MySqlClient.MySqlCommand, оператор As MySql.Data.MySqlClient.PreparableStatement.Pomparae, notBatata), система управления в этом контексте, потому что это «друг». C: \ Users \ Mario \ Documents \ visual studio 2010 \ Проекты \ Remote Techs Live! \ Remote Techs Live! \ Login.vb 43 13 Remote Techs Live!

Есть идеи?

Ответы [ 2 ]

1 голос
/ 12 мая 2010

Нет смысла пытаться создать MySqlDataReader, а затем выбросить его!

Сначала вы попытаетесь создать читателя:

    Dim myDataReader As New MySqlDataReader

Затем позже вы пытаетесь выбросить это, когда делаете это:

    myDataReader = myCommand.ExecuteReader

Просто удалите New из вашей первоначальной декларации. Я подозреваю, что конструктор для MySqlDataReader не является общедоступным.

0 голосов
/ 12 мая 2010

Вы можете попробовать .AddWithValue вместо .Add.

Например:

cmd.Parameters.AddWithValue("?Username", login_usr_txt.Text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...