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

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>