如何将成绩放入数据库?

时间:2014-08-23 12:45:37

标签: c# database

我不确定这是怎么回事,但它没有把测验成绩放在学生表中,任何人都可以帮忙吗?这是我的代码。

private void button9_Click(object sender, EventArgs e)
    {
        int x = 0;

        if (textBox20.Text == "yours" || textBox20.Text == "Yours" || textBox20.Text == "YOURS")
        {
            x++;
        }
        if (textBox21.Text == "mine" || textBox21.Text == "Mine" || textBox21.Text == "MINE")
        {
            x++;
        }
        if (textBox22.Text == "his" || textBox22.Text == "His" || textBox22.Text == "HIS")
        {
            x++;
        }
        if (textBox23.Text == "yours" || textBox23.Text == "Yours" || textBox23.Text == "YOURS")
        {
            x++;
        }         
        SqlConnection con = new SqlConnection(connStr);
        str = "UPDATE Student SET (Q1 ='" + x + "') WHERE (Username = '" + this.textBox3.Text + "' , Password = '" + this.textBox4.Text + "')";
        try
        {
            this.studentTableAdapter5.Update(this.cAIDataSet5.Student);
            MessageBox.Show("Your Score is: " + x);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

我不确定我哪里出错了,它根本没有显示任何错误。

1 个答案:

答案 0 :(得分:1)

你不能在任何地方执行你的SQL查询。

你需要做以下几点事情:

using(var con = new SqlConnection(connStr))
{
   var command = new SqlCommand(str, connStr);
   command.ExecuteNonQuery(command);
}

评论员提到你的方法容易受到Sql注入攻击。虽然你的问题的背景使这有点无关紧要,但了解它是很好的。你可以阅读sql injection here