我需要将表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);
}
答案 0 :(得分:4)
你从未执行过该命令。前
conn.Close();
把
cmd.ExecuteNonQuery();
另外,建议:不要只显示ex.Message
。显示ex.ToString()
以显示完整的异常,包括任何内部异常。这对于SqlException
尤其重要,因为它可以是很多细节。