C# e SQL Server: INSERT, DateTime, OleDBCommand and Parameters
Ecco un esempio di come utilizzare i Parameters all’interno di un oggetto OLEDBCommand.
La query
INSERT INTO TABELLA VALUES ('25/04/1972 10:40:00') |
eseguita su un campo di tipo DATETIME si traduce grossolanamente in:
OleDbConnection conn;
OleDbCommand comando;
String connStr;
String sql;
connStr = @"Provider = SQLOLEDB.1;Password=" + password + ";User ID=" + user + ";Initial Catalog=" + database + ";Data Source=" + server;
conn = new OleDbConnection(connStr);
conn.Open();
sql = "INSERT INTO TABELLA VALUES ('25/04/1972 10:40:00')";
comando = new OleDbCommand(sql, conn);
comando.ExecuteNonQuery();
Può capitare che l’ultima istruzione dia errore, per problemi di sintatti del formato data. A seconda delle impostazioni predefinite del server il formato per la data può variare (ad esempio può essere ’1972-04-25 10:40:00).
L’utilizzo dei Parameters ovvia questa problematica. Ecco come diventa il codice:
DateTime dt = new DateTime(1972,4,25,10,40,0);
sql = "INSERT INTO TABELLA VALUES (?)";
comando = new OleDbCommand(sql, conn);
comando.Parameters.AddWithValue("@dataora", dt);
comando.ExecuteNonQuery();
Tutto qua.
Leave a Reply