下面是我当前运行的代码:
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");
}
}
上面的代码用于登录我的数据库。问题是它只检查登录名和密码。由于这两个工作,我不知道如何调用另一个列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 vipcheck = "7";
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 AND mgroup_others 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 && vipcheck != mgroup_others, hashedPassword)))
{
MessageBox.Show("Login Successful");
}
}
3条答案
按热度按时间pqwbnv8z1#
如果你只需要知道
mgroup_others
列中的值是否等于7
,你可以如下更新你的SQL:这种方法的优点(与其他一些答案相比)是您仍然可以使用
ExecuteScalar
,因为您只阅读单个值。如果需要检索
mgroup_others
的值并在C#代码中检查它,则应该使用其他显示如何使用ExecuteReader
或DataAdapter
的答案之一。eivnm1vs2#
SELECT
子句应该如下所示:然后,因为你得到了多个值,你应该使用
ExecuteReader()
或者使用DataAdapter
到Fill()
到DataTable
,这样你就可以使用所有的值。如果你想成为一名成功的开发人员,这是你应该自己编写的代码,这样你就可以理解它,而不仅仅是复制我们给予你的东西。m3eecexj3#
上面提到的SQL查询似乎是错误的,所以更改SELECT查询如下:
参考this文档了解如何编写正确的MySql查询。