我存储在date
的数据库值中。
我以格式显示当前日期:
textBoxTradeDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
我想将此日期插入数据库。如何检查它是否合适?我不想使用正则表达式,我需要将此textBoxTradeDate.Text
保存在数据库中。此外,用户必须能够更改此日期,因此我无法存储DateTime.Now
并且只显示日期部分。
我不想使用Calendar
工具。
答案 0 :(得分:4)
使用TryParseExact
,以便指定日期格式:
DateTime tradeDate;
bool ok = DateTime.TryParseExact(
textBoxTradeDate.Text,
"yyyy-MM-dd",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out tradeDate
);
if (ok) {
// correct date, so you can put it in the database
} else {
// incorrect format, so tell the user
}
答案 1 :(得分:2)
您可以使用DateTime.TryParse()
。
但是如果有可能出现问题,你应该确保指定预期的日期格式。
string datestr = "2001-01-01";
DateTime date;
if (DateTime.TryParse(datestr, out date)) {
//write date to db
} else {
//throw an error
}
答案 2 :(得分:1)
带有映射SQL Server's所以我不能存储DateTime.Now并且只显示日期部分。
date
type类型的.NET Framework的 DateTime
。这就是您应该直接插入日期时间值 date
类型列的原因,此列保存仅日期部分。
由于您始终将格式化的DateTime.Now
传递给textBoxTradeDate.Text
属性,因此您可以直接将此DateTime.Now
值传递给参数化插入查询。
如果您想检查textBoxTradeDate.Text
是否有效DateTime
,则有DateTime.Parse
,DateTime.TryParse
,DateTime.ParseExact
和DateTime.TryParseExact
方法正是这个。
string s = textBoxTradeDate.Text;
DateTime dt;
if(DateTime.TryParseExact(s, "yyyy-MM-dd",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
// You have a valid datetime.
}