在mysql中插入日期时出错

时间:2014-06-02 06:31:00

标签: c# datetime

我有简单的mysql表想从asp页面插入查询详细信息,请查看代码错误;

  

“字符串未被识别为有效的DateTime”

请建议

try
{
    MySqlCommand cmd = new MySqlCommand("sp_LeadInfo", mycon);
    cmd.CommandType = CommandType.StoredProcedure;

    string currentDate = System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");

    string dateCheckIn = Convert.ToDateTime(b.checkIn).ToString("yyyy-MM-dd");
    string dateCheckOut = Convert.ToDateTime(b.cheOut).ToString("yyyy-MM-dd");
    cmd.Parameters.AddWithValue("@txtName", b.name);
    cmd.Parameters.AddWithValue("@txtEmail", b.email);
    cmd.Parameters.AddWithValue("@txtPhone", b.phone);
    cmd.Parameters.AddWithValue("@txtAlternateNo", b.alternateNo);
    cmd.Parameters.AddWithValue("@txtCheckIn", dateCheckIn);
    cmd.Parameters.AddWithValue("@txtNight", b.night);
    cmd.Parameters.AddWithValue("@txtCheckOut",dateCheckOut);
    cmd.Parameters.AddWithValue("@txtRooms", b.noOfRooms);
    cmd.Parameters.AddWithValue("@txtAdults", b.adults);
    cmd.Parameters.AddWithValue("@txtChildren", b.children);
    cmd.Parameters.AddWithValue("@currDate", currentDate);
    cmd.Parameters.AddWithValue("@txtMessage", b.message);
    cmd.Parameters.AddWithValue("@txtStatus","");
    cmd.Parameters.AddWithValue("@txtRemark", "");

    mycon.Open();
    //cmd.ExecuteNonQuery();
    cmd.ExecuteNonQuery();
    mycon.Close();
}
catch(Exception ex)
{
    throw (ex);
}

1 个答案:

答案 0 :(得分:0)

Convert.ToDateTime(string) method明确使用DateTime.Parse(string, CultureInfo.CurrentCulture)

这是怎样的impelemented;

public static DateTime ToDateTime(String value) {
    if (value == null)
        return new DateTime(0);
    return DateTime.Parse(value, CultureInfo.CurrentCulture);
}

这些方法使用CurrentCulture的标准日期和时间模式。您的字符串模式可能没有当前线程文化的标准格式。

  

各位感谢您的努力,实际上我得到了解决方案   在表格“20-5-2014”中以日期形式插入日期

,听起来您的CurrentCulture没有dd-M-yyyy格式作为标准日期和时间模式。您可能需要使用javascript或ajax vs ...

从用户界面强制使用该格式的输入

您可以找到当前文化支持的所有标准模式;

foreach (var pattern in CultureInfo.CurrentCulture.
                                    DateTimeFormat.
                                    GetAllDateTimePatterns())
{
     Console.WriteLine(pattern);
}

您可以使用DateTime.TryParseExactDateTime.ParseExact方法来解析自定义日期和时间格式化字符串。

例如;

string s = "20-5-2014";
DateTime dt;
if(DateTime.TryParseExact(s, "dd-M-yyyy", CultureInfo.CurrentCulture,
                              DateTimeStyles.None, out dt))
{
    Console.WriteLine(dt);
    Console.WriteLine(dt.ToString("yyyy-MM-dd"));
}

输出将是;

5/20/2014 12:00:00 AM
2014-05-20

这里有 demonstration