현재 실행 중인 코드는 다음과 같습니다.
으아아아위 코드는 내 데이터베이스에 로그인할 수 있습니다. 문제는 로그인과 비밀번호만 확인한다는 점이다. 이 두 가지가 작동하기 때문에 다른 열 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粉4594409912024-01-17 16:57:14
SELECT
절은 다음과 같아야 합니다.
그런 다음 여러 값을 얻으므로 ExecuteReader()
或使用 DataAdapter
来 Fill()
DataTable
을 사용해야 모든 값을 사용할 수 있습니다. 성공적인 개발자가 되고 싶다면 우리가 제공하는 코드를 단순히 복사하기보다는 이해할 수 있도록 직접 이 코드를 작성해야 합니다.
P粉5338986942024-01-17 13:58:09
알아야 할 것이 mgroup_others
列中的值是否等于 7
이라면 다음과 같이 SQL을 업데이트할 수 있습니다.
이 접근 방식의 장점(다른 답변과 비교)은 단일 값만 읽기 때문에 ExecuteScalar를 계속 사용할 수 있다는 것입니다.
검색이 필요한 경우mgroup_others
的值并在 C# 代码中检查它,您应该使用显示如何使用 ExecuteReader
或数据适配器
.