2010-05-12 8 views
1

주 응용 프로그램을 시작하기 전에 사용자를 MySQL 데이터베이스로 인증하는 VB.NET 함수가 있습니다.빌드시 오류가 발생하는 MySqlDataReader

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  

기능이 나는 결과를 표시하는 메시지 박스를 사용하고 있기 때문에, 응용 프로그램을 실행하기 전에 수행해야 할 몇 가지 다른 일이있다, 아직 완료되지 않은 : 여기에 함수의 코드는 로그인 시도. MySql.Data.MySqlClient.MySqlCommand, MySQL을 같이 문으로

오류 1 'MySql.Data.MySqlClient.MySqlDataReader.Friend 하위 새로운 (명령 : 내가 갖는

오류는 다음과 같다. Data.MySqlClient.PreparableStatement, As As System.Data.CommandBehavior) '은'Friend '이므로이 컨텍스트에서 액세스 할 수 없습니다. C : \ Users \ Mario \ documents \ visual 스튜디오 2010 \ Projects \ Remote Techs Live! \ Remote Techs Live! \ Login.vb 43 13 원격 기술 라이브!

아이디어가 있으십니까?

답변

1

그것은 MySqlDataReader를 만든 다음 그것을 멀리 던져하려고 말도 안돼!

myDataReader = myCommand.ExecuteReader 

그냥 초기 선언에서 새를 제거 : 나중에이 작업을 수행 할 때를 멀리 던져하려고 그런

Dim myDataReader As New MySqlDataReader 

:

먼저 당신은 리더의 생성을 시도하는이 작업을 수행 . MySqlDataReader의 생성자가 공개적으로 액세스 할 수 없다고 생각됩니다.

+0

많은 감사. 그게 효과가있어, 나는 그 새로운 것을 깨닫지 못했다. – TuxMeister

0

.Add 대신 .AddWithValue를 시도해 볼 수 있습니다. 예를 들어

는 :

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

실제로, 내가 알 수있는 것이 맞습니다. Dim myDataReader As New MySqlDataReader 여기서 myDataReader는 파란색으로 표시되고 언급 된 오류가 발생합니다. – TuxMeister

관련 문제