찾다

 >  Q&A  >  본문

MySQL이 다른 열의 정적 결과를 검사하고 검증하도록 하는 방법

현재 실행 중인 코드는 다음과 같습니다.

으아아아

위 코드는 내 데이터베이스에 로그인할 수 있습니다. 문제는 로그인과 비밀번호만 확인한다는 점이다. 이 두 가지가 작동하기 때문에 다른 열 mgroup_others을 호출하여 거기에 7의 결과가 있는지 확인하는 방법을 모르겠습니다. 여기에 내 데이터베이스 사진을 첨부했습니다:

내가 다시 작성한 기능은 다음과 같습니다.

private void button1_Click(object sender, EventArgs e)
    {
        string server = "207.244.70.217";
        string database = "nextgene_NGH";
        string uid = "EXAMPLEUID";
        string password = "EXAMPLEPASSWORD";
        string ssl = "None";

        string connectionString = $"SERVER={server};DATABASE={database};UID={uid};PASSWORD={password};SSL Mode={ssl};";    
        using var connection = new MySqlConnection(connectionString);
        connection.Open();
        using var command = new MySqlCommand("SELECT members_pass_hash FROM core_members && WHERE name = @name;", connection);
        command.Parameters.AddWithValue("@name", maskedTextBox1.Text);
        var hashedPassword = (string) command.ExecuteScalar();
        if (!(hashedPassword is null && !BCrypt.Net.BCrypt.Verify(maskedTextBox2.Text, hashedPassword)))
        {
            
            MessageBox.Show("Login Successful");
        }
    }

P粉111627787P粉111627787312일 전393

모든 응답(2)나는 대답할 것이다

  • P粉459440991

    P粉4594409912024-01-17 16:57:14

    SELECT 절은 다음과 같아야 합니다.

    으아악

    그런 다음 여러 값을 얻으므로 ExecuteReader() 或使用 DataAdapterFill() DataTable을 사용해야 모든 값을 사용할 수 있습니다. 성공적인 개발자가 되고 싶다면 우리가 제공하는 코드를 단순히 복사하기보다는 이해할 수 있도록 직접 이 코드를 작성해야 합니다.

    회신하다
    0
  • P粉533898694

    P粉5338986942024-01-17 13:58:09

    알아야 할 것이 mgroup_others 列中的值是否等于 7이라면 다음과 같이 SQL을 업데이트할 수 있습니다.

    으아악

    이 접근 방식의 장점(다른 답변과 비교)은 단일 값만 읽기 때문에 ExecuteScalar를 계속 사용할 수 있다는 것입니다.

    검색이 필요한 경우mgroup_others 的值并在 C# 代码中检查它,您应该使用显示如何使用 ExecuteReader数据适配器.

    회신하다
    0
  • 취소회신하다