Voici le code:Comment insérer datetime aC# var dans SQL Server
string ConnectionString= @"Data Source=localhost\SQLEXPRESS;
Initial Catalog=notepad; Integrated Security=SSPI ";
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
string strEvent = TextBoxEvent.Text;
string strDate = Calendar1.TodaysDate.ToShortDateString();
string strInsert = "insert into notepad (time, event) values (strDate, strEvent)";
SqlCommand cmd=new SqlCommand(strInsert, con);
cmd.ExecuteNonQuery();
le temps est smalldatetime
dans SQL Server 2005
Quand je lance ce programme, une erreur occurrs comme ceci:
Le nom "strDate" n'est pas autorisé dans ce contexte. Les expressions valides sont constantes, expressions constantes et (dans certains contextes) variables. Les noms de colonne ne sont pas autorisés.
mais si je remplace le strDate
avec 2010/05/22
comme ceci:
string strInsert = "insert into notepad (time, event) values ("2010/05/22", strEvent)";
le programme fonctionnera correctement. Je suis intriguée par ce problème et je me tourne vers vous pour vous aider.
AVERTISSEMENT: Ceci ouvrira les portes à SQL att d'injection Acks !! Vous devriez ** JAMAIS JAMAIS ** juste concaténer ensemble vos instructions SQL - utiliser ** des requêtes paramétrées ** à la place - ** TOUJOURS! ** –