无法更新SQL表

时间:2015-05-10 23:35:11

标签: c# sql-server parameters sql-update

我需要将表Iepirkumi中的值更改为文本框中的值。 Debbugger没有显示任何问题,但代码不起作用。

    string connectionString = (@"Data Source=(LocalDB)\v11.0;AttachDbFilename=""C:\Users\Davis\Documents\Visual Studio 2013\Projects\WindowsFormsApplication1\WindowsFormsApplication1\dati.mdf"";Integrated Security=True");
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();
        using (SqlCommand cmd =
            new SqlCommand("UPDATE Iepirkumi SET"+
                " [Pieg_Nos]='@Pieg_Nos',"+
                " [Prec_Nos]='@Prec_Nos',"+
                " [Daudzums]=@Daudzums,"+
                " [Pieg_dat]='@Piegdat',"+
                " [Statuss]='@Statuss',"+
                " [Preces_kods]=@Preces_kods,"+
                " [Pieg_kods]=@Pieg_kods WHERE [Id]=@Id", conn))
        {
            cmd.Parameters.Add("@Id", SqlDbType.Int).Value=rindex;
            cmd.Parameters.Add("@Pieg_Nos",SqlDbType.NChar).Value=textBox3.Text;
            cmd.Parameters.Add("@Prec_Nos", SqlDbType.NChar).Value = textBox4.Text;
            cmd.Parameters.Add("@Daudzums", SqlDbType.NChar).Value = textBox5.Text;
            cmd.Parameters.Add("@Pieg_dat", SqlDbType.DateTime).Value = dateTimePicker1.Value;
            cmd.Parameters.Add("@Statuss", SqlDbType.NChar).Value= textBox6.Text;
            cmd.Parameters.Add("@Preces_kods", SqlDbType.NChar).Value = textBox1.Text;
            cmd.Parameters.Add("@Pieg_kods", SqlDbType.NChar).Value = textBox2.Text;
        }
        conn.Close();
    }
    MessageBox.Show("Dati saglabāti.");
}
catch (SqlException ex)
{
    MessageBox.Show(ex.Message);
}

1 个答案:

答案 0 :(得分:4)

你从未执行过该命令。前

    conn.Close();

    cmd.ExecuteNonQuery();

另外,建议:不要只显示ex.Message。显示ex.ToString()以显示完整的异常,包括任何内部异常。这对于SqlException尤其重要,因为它可以是很多细节。