protected void Button_AddTask_Click(object sender, EventArgs e)
{
SqlDataSource newTask = new SqlDataSource();
newTask.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
newTask.InsertCommand = "INSERT INTO [Task] ([MemberAccountName], [Title], [Place], [TaskDetail],[DateCreated]) VALUES (@.MemberAccountName, @.Title, @.Place, @.TaskDetail,@.DateCreated)";
newTask.InsertParameters.Add("MemberAccountName", User.Identity.Name);
newTask.InsertParameters.Add("Title", TextBox_Title.Text);
newTask.InsertParameters.Add("Place", TextBox_Place.Text);
newTask.InsertParameters.Add("TaskDetail", TextBox_Detail.Text);
newTask.InsertParameters.Add("DateCreated",DateTime.Now.ToString());
newTask.Insert();
Response.Redirect("Default.aspx");
}
but I got this error
Arithmetic overflow error converting expression to data type datetime.
The statement has been terminated.
Any idea?
Sorry your guy, I think I found the problem...
In my SQL Express 2005 use the datetime format in DD/MM/YYYY
butDateTime.Now.ToString() giveMM/DD/YYYY
I found it by hardcoding "22/12/2005 00:00:00" and it works!!
So now how can I fix this??
|||
Check the other ways to use the add, there should be one that allows you to specify the parameter type. Tell it that it is a datetime, and pass in datetime.now (NOT datetime.now.tostring).
|||You can avoid date problems by always presenting your date in YYYYMMDD format to SQL Server.In your original code, try this instead (add a format to the ToString method):
newTask.InsertParameters.Add("DateCreated",DateTime.Now.ToString("yyyyMMdd"));|||Thank you everyone, now I can make it work
However there is a little problem with my Thai Buddhist year !!
There is 543 year different between Christ year and Buddhist year.
I can get the Datetime.Now show correctly in the page but when inserting into the database the system will add 543 automatically to the year !!! So when I retrieve the data back from the database it get the year 3091 !!
So what I have to do is
.
DateTime dt = DateTime.Now;
.
.
newTask.InsertParameters.Add("DateCreated", dt.AddYears(-543).ToString("yyyyMMdd HH:mm:ss"));
.
It's kind of weird, right??|||See my post 3 posts up.
No comments:
Post a Comment