我試圖從後面的代碼插入值到datetime
列。插入日期時間到SQL Server 2008中
在我的本地計算它工作正常,但是當應用程序在服務器上它給了我一個錯誤:
String was not recognized as a valid DateTime.
這個方法我試過:(add_avent.start
和add_avent.end
是datetime
)
public void add_event(act_event add_avent)
{
using (SqlConnection con = connect("igroup20_test2ConnectionString"))
{
using (SqlCommand cmd = create_command(con, "insert into act_events values(@e_name, @e_start, @e_end, @e_description, @e_address)"))
{
cmd.Parameters.AddWithValue("@e_name", add_avent.name);
SqlParameter param2 = new SqlParameter("@e_start", SqlDbType.DateTime);
param2.Value = add_avent.start;
cmd.Parameters.Add(param2);
SqlParameter param3 = new SqlParameter("@e_end", SqlDbType.DateTime);
param3.Value = add_avent.end;
cmd.Parameters.Add(param3);
//cmd.Parameters.Add(new SqlParameter("@e_start", SqlDbType.DateTime));
//cmd.Parameters["@e_start"].Value = add_avent.start;
//cmd.Parameters.Add(new SqlParameter("@e_end", SqlDbType.DateTime));
//cmd.Parameters["@e_end"].Value = add_avent.end;
//cmd.Parameters["@e_end"].Value = DateTime.Parse(end);
cmd.Parameters.AddWithValue("@e_description", add_avent.description);
cmd.Parameters.AddWithValue("@e_address", add_avent.address);
cmd.ExecuteNonQuery();
}
//using (SqlCommand cmd2=create_command
}
}
我也試過在評論部分給出了同樣的錯誤方法
///cmd.Parameters.Add(new SqlParameter("@e_start", SqlDbType.DateTime));
//cmd.Parameters["@e_start"].Value = add_avent.start;
//cmd.Parameters.Add(new SqlParameter("@e_end", SqlDbType.DateTime));
//cmd.Parameters["@e_end"].Value = add_avent.end;
檢查你的服務器日期時間格式 – sharad
我認爲你的格式可能是錯誤的。你有沒有試過yyyy-MM-dd? – ofraski
你不應該使用格式* *。你不應該處理文本 - 你應該*只是*保留它們作爲日期時間值。如果這仍然給出相同的問題,請在*拋出異常的位置顯示*。 –