I have a birthdate column of type Date
in sql database
And in my application I use a dateTimePicker
to get the birth date
But when i am trying to insert the date
taken from the dateTimePicker
:
I get an error :
Incorrect syntax near '12'
And when I try to debug the code I find that the value taken from the dateTimePicker
is
Date = {3/21/2015 12:00:00 AM}
The CODE:
//cmd is sql command
cmd.CommandText="INSERT INTO person (birthdate) VALUES("+dateTimePicker.Value.Date+")";
//con is sql connection
con.Open();
cmd.ExecuteNonQuery();
con.Close();
dateTimePicker
stores values as1/1/1900 12:00:00 AM
so you should useDATETIME
if you're trying to store it since DATETIME's format is:YYYY-MM-DD HH:MI:SS
.You can print the
dateTimePicker
value usingto see for yourself.
Try including quotes:
I'd recommend using parameters too.
Try this as string format:
As mentioned before the best practice is to use parameters, but if you really need to use a TSQL statement from source you should use date in the format: yyyymmdd
What you really should do is use parameters to avoid SQL injection attacks - and it also frees you from string formatting dates - also a good thing!
Also, it's a recommend best practice to put your
SqlConnection
,SqlCommand
andSqlDataReader
intousing(....) { .... }
blocks to ensure proper disposal: