0

datetimeコードビハインドから列に値を挿入しようとしています。

私のローカル コンピューティングでは問題なく動作しますが、アプリケーションがサーバー上にある場合はエラーが発生します。

文字列は有効な 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;
4

2 に答える 2

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");
于 2013-07-30T13:25:06.077 に答える
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"));
于 2013-07-30T13:35:21.560 に答える