我有一个页面,我在其中创建和更新事件,此事件可以有eventDate
输入日历:
创建活动时,一切都很棒。当我更新事件时,我使用DB中的日期预先填充此字段:
txtEventDate.Text = Reader.GetDateTime(7).Date.ToShortDateString();
现在,它表现得很好:
05/05/2011
但用于创建活动的相同代码现在在UPDATING上失败了:
cmd.Parameters.Add("?eventDate", MySqlDbType.DateTime).Value = DateTime.ParseExact(txtEventDate.Text + " " + txtEventTime.Text,
"MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
因为它'看到'(用Debug检查)txtEventDate.Text有值:
2011/5/5
所以0缺失了......
这真的太丑了......因为在用户界面他们就在那里......你知道会出现什么问题吗?
更新:我已附上照片以证明问题...
Ps:当我不编辑活动时(所以我不预先填充此字段,但选择从日历中选择一些日期)一切正常...
答案 0 :(得分:1)
首先,对于格式的日期部分,您应指定"mm/dd/yyyy"
(使用非大写字母“M”字母)以在解析时忽略前导零,但我担心的是您在图像中发布的错误不包括时间,您使用了包含时间格式的DateTime.ParseExact()
函数。