我想创建一个用户可以从MySQL数据库中猜出值的函数。 label2由其他代码随机生成,因此用户必须通过输入texbox1来猜测label2的伙伴值。我尝试使用通常的登录功能代码
s = "SELECT val2 FROM data_reader.db WHERE val1='" + this.label2.Text + "'and image='" + this.textBox1.Text + "';";
int count = 0;
while (mdr.Read())
{
count = count + 1;
}
if (count == 1)
{
MessageBox.Show("correct");
}
else
{
MessageBox.Show("wrong");
}
此代码的问题是即使值正确也始终返回错误。有没有遗漏算法或者我的代码不适合这个目的?
答案 0 :(得分:2)
您忘了在label2.Text
值和AND
交汇点之间插入空格字符。
s = "SELECT val2 FROM data_reader.db WHERE val1='" + this.label2.Text
+ "' AND image='" + this.textBox1.Text + "';";
答案 1 :(得分:0)
好的,我会帮助你解决其他问题
第一:我在这里学到的课程,从不使用“+”,你应该在查询参数上使用AddWithValue,如下所示:
cmd.CommandText = "SELECT val2 FROM data_reader.db WHERE val1 = @value1 and image=@image";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@value1", this.label2.Text);
cmd.Parameters.AddWithValue("@image", this.textBox1.Text);
更容易理解和更安全。
第二:你只需要使用
if (mdr.Read())
{
MessageBox.Show("Correct!");
}
else
{
MessageBox.Show("Wrong!");
}