c#将输入与mysql值进行比较

时间:2015-05-07 12:28:15

标签: c# mysql visual-studio-2010

我想创建一个用户可以从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");
            }

此代码的问题是即使值正确也始终返回错误。有没有遗漏算法或者我的代码不适合这个目的?

2 个答案:

答案 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!");
}