public void updateCustomer(Customer customer, string id)
{
string queryString = "UPDATE KLIENCI SET ID_NR_DOWODU_KLIENTA = : p_ID_NR_DOWODU_KLIENTA, IMIE = :p_IMIE, NAZWISKO = :p_NAZWISKO, EMAIL = :p_EMAIL, TELEFON = :p_TELEFON WHERE ID_NR_DOWODU_KLIENTA = :" + id;
string connectionString = "Data Source = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = Firma))); User Id = firma; Password = firma;";
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleCommand cmd = connection.CreateCommand();
OracleParameter parm;
//cmd.CommandText = queryString;
try
{
connection.Open();
string sqlUpdate = "UPDATE KLIENCI ";
sqlUpdate += "SET IMIE = :p_imie, ";
sqlUpdate += "NAZWISKO = :p_nazwisko, ";
sqlUpdate += "EMAIL = :p_email, ";
sqlUpdate += "TELEFON = :p_telefon ";
sqlUpdate += "where ID_NR_DOWODU_KLIENTA = :'AAZ371758'";
cmd.CommandText = sqlUpdate;
OracleParameter p1 = new OracleParameter();
p1.OracleDbType = OracleDbType.Varchar2;
p1.Value = customer.Id;
p1.ParameterName = "p_id";
OracleParameter p2 = new OracleParameter();
p2.OracleDbType = OracleDbType.Varchar2;
p2.Value = customer.Name;
p2.ParameterName = "p_imie";
OracleParameter p3 = new OracleParameter();
p3.OracleDbType = OracleDbType.Varchar2;
p3.Value = customer.LastName;
p3.ParameterName = "p_nazwisko";
OracleParameter p4 = new OracleParameter();
p4.OracleDbType = OracleDbType.Varchar2;
p4.Value = customer.Email;
p4.ParameterName = "p_email";
OracleParameter p5 = new OracleParameter();
p5.OracleDbType = OracleDbType.Varchar2;
p5.Value = customer.CellPhone;
p5.ParameterName = "p_telefon";
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cmd.Parameters.Add(p4);
cmd.Parameters.Add(p5);
cmd.ExecuteNonQuery();
MessageBox.Show("Record Updated Successfully", "Record Updated");
}
catch (Exception ex)
{
MessageBox.Show("Komunikat: " + ex);
}
}
}
Dostaję błąd: niepoprawna nazwa zmiennej macierzystej.
Metoda z javy, która działa:
public int updateCustomer(String idCard, Customer customer) {
String sql = "UPDATE KLIENCI SET ID_NR_DOWODU_KLIENTA=?, IMIE=?, "
+ "NAZWISKO=?, TELEFON=?, EMAIL=? WHERE ID_NR_DOWODU_KLIENTA='"
+ idCard + "'";
try {
PreparedStatement prepStmt = conn.prepareStatement(sql);
prepStmt.setString(1, customer.getIdCard());
prepStmt.setString(2, customer.getName());
prepStmt.setString(3, customer.getLastName());
prepStmt.setString(4, customer.getCellPhone());
prepStmt.setString(5, customer.getEmail());
prepStmt.execute();
return prepStmt.getUpdateCount();
} catch (SQLException ex) {
JOptionPane
.showMessageDialog(null,
"Błąd aktualizacji danych klienta do bazy." + ex,
"Błąd", 3);
return -1;
}
}
Pytanie jak to zrobić w C#? Czy jest jakiś krótszy sposób na to, przeważnie to Javie kod jest długi...
dodanie znacznika <code class="java"> - furious programming