2013-07-30 96 views
0

我試圖從後面的代碼插入值到datetime列。插入日期時間到SQL Server 2008中

在我的本地計算它工作正常,但是當應用程序在服務器上它給了我一個錯誤:

String was not recognized as a valid DateTime.

這個方法我試過:add_avent.startadd_avent.enddatetime

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; 
+0

檢查你的服務器日期時間格式 – sharad

+0

我認爲你的格式可能是錯誤的。你有沒有試過yyyy-MM-dd? – ofraski

+0

你不應該使用格式* *。你不應該處理文本 - 你應該*只是*保留它們作爲日期時間值。如果這仍然給出相同的問題,請在*拋出異常的位置顯示*。 –

回答

1

格式應該是MM-DD:

String start = add_avent.start.ToString("yyyy-MM-dd HH:mm"); 
String end = add_avent.end.ToString("yyyy-MM-dd HH:mm"); 
0

試試這個

SQL服務器的日期格式和您的系統日期格式不同。所以你有這個問題。

param2.Value =Convert.ToDateTime(add_avent.start.ToString("yyyy-MM-dd HH:mm")); 
param2.Value = Convert.ToDateTime(add_avent.end.ToString("yyyy-MM-dd HH:mm")); 
相關問題