Mam problem. Próbuje zrobić UPDATE ale cały czas mam coś nie tak. Mógłby ktoś spojrzeć i podpowiedzieć jak zmienić to co do tej pory napisałem?
Najpierw zrobiłem coś takiego:
string sql = string.Format("update baza set MIEJSCOWOŚĆ = {0}, ULICA = {1}, NUMER = {2}, POCZTA = {3} WHERE MIEJSCOWOŚĆ = {4} and ULICA = {5} and NUMER = {6} and POCZTA = {7}", "textBox1_Miejscowość.Text, textBox2_Ulica.Text, textBox3_Numer.Text, textBox4_Poczta.Text, ___form.label1_Miejscowość.Text, ___form.label2_Ulica.Text, ___form.label3_Numer.Text, ___form.label4_Poczta.Text");
Potem wyczytałem że lepiej stworzyć sobie parametry:
private void button1_Dodaj_Click(object sender, EventArgs e)
{
using (OracleConnection conn = new OracleConnection("User ID=BAZA;Password=MojeHaslo;"))
{
using (OracleCommand cmd = new OracleCommand())
{
string sql = string.Format("UPDATE BAZA SET MIEJSCOWOŚĆ = NewMIEJSCOWOSC, ULICA = NewULICA, NUMER = NewNUMER, POCZTA = NewPOCZTA WHERE MIEJSCOWOŚĆ = OldMIEJSCOWOSC and ULICA = OldULICA and NUMER = OldNUMER and POCZTA = OldPOCZTA");
cmd.CommandText = sql;
cmd.Connection = conn;
cmd.Parameters.Add("NewMIEJSCOWOSC", textBox1_Miejscowość.Text);
cmd.Parameters.Add("NewULICA", textBox2_Ulica.Text);
cmd.Parameters.Add("NewNUMER", textBox3_Numer.Text);
cmd.Parameters.Add("NewPOCZTA", textBox4_Poczta.Text);
cmd.Parameters.Add("OldMIEJSCOWOSC", ___form.label1_Miejscowość.Text);
cmd.Parameters.Add("OldULICA", ___form.label2_Ulica.Text);
cmd.Parameters.Add("OldNUMER", ___form.label3_Numer.Text);
cmd.Parameters.Add("OldPOCZTA", ___form.label4_Poczta.Text);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
Może ktoś wie jak to przebudować? Coś dodać, coś usunąć, może powinno to wyglądać inaczej? Dodam że argument Poczta czasami jest pusty. Chciałem żeby ta wartość nie była obowiązkowa w bazie. Może to jest źródłem problemu?