C#插入查询执行

时间:2014-07-21 17:02:52

标签: c# .net

我在运行时在数据库中插入了一行,如果执行成功,它应该显示正消息,如果没有执行,它应该显示负消息。我只做了积极的情况,我喜欢把负面消息作为好。请帮帮我们

SqlCommand sc = new SqlCommand("insert into Master Values('" + textBox1.Text + "'," + textBox2.Text + "," + textBox3.Text + ",'" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "','" + textBox9.Text + "');");
            sc.Connection = con;
            int o;
o = sc.ExecuteNonQuery();
            MessageBox.Show("saved");

1 个答案:

答案 0 :(得分:3)

您需要检查一些事项以确定查询的“成功”。具体做法是:

  1. 例外
  2. 受影响的行
  3. 第一个由异常处理处理。例如:

    try
    {
        ...
        o = sc.ExecuteNonQuery();
        MessageBox.Show("saved");
    }
    catch (SqlException e)
    {
        // there was an error from the database, handle it here
    }
    

    第二个可以通过o中存储的返回值进行检查。 (顺便说一句,这是非常非直观的变量名。)类似于:

    if (o < 1)
    {
        // no rows were updated, handle that condition here
    }
    

    或者,相反,取决于您的业务逻辑:

    if (o > 1)
    {
        // *multiple* rows were updated, is that what you wanted?
    }
    

    附注:请注意,您的代码全开SQL injection attacks。您需要使用parameterized queries来防止这种情况发生。