【发布时间】:2014-06-24 05:20:53
【问题描述】:
我正在尝试更新我沿途继承的旧 c# 程序。变化不大,只是添加了一些新字段等。我使用的是 Visual Studio 2008。
具体来说,我正在尝试从 SQL 表中读取日期时间并将其插入到 DateTimePicker 中,以便用户可以在屏幕上读取/修改它。
我尝试了几种不同的方法来做到这一点,但下面的代码似乎是最明智的。
我已将日期时间字符串从我的 SQL 数据库中读入一个日期时间变量。
我可以在消息框中显示该值没有问题,但是当我尝试将其加载到 dateTimePicker 控件中时,我得到一个异常。
消息框中显示的日期如下所示。 2015 年 6 月 24 日上午 12:00:00 (澳大利亚的日期格式是正确的,我不在乎时间是什么)
“对象引用未设置为对象的实例” _COMPlusExceptionCode = -532459699
while (sqlDR.Read())
{
this.textBoxFixedAmountStreetNumber.Text = sqlDR["lStreetNumber"].ToString() + sqlDR["sStreetNumberSuffix"].ToString();
this.textBoxFixedAmountStreetName.Text = sqlDR["sStreet"].ToString();
this.textBoxFixedAmountSuburb.Text = sqlDR["sTown"].ToString();
DateTime dateString = Convert.ToDateTime(sqlDR["dFixedAmountEndDate"].ToString());
MessageBox.Show("dFixedAmountEndDate=" + dateString, "Debug", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
this.dateTimePickerFixedAmountEndDate.Value = dateString;
}
我可能是世界上最年长的新手,因为我主要做系统管理员,从不专注于单一的编程语言。 :)
非常感谢任何关于我做错了什么的想法。
谢谢 大卫
【问题讨论】:
-
数据库中
dFixedAmountEndDate列的数据类型是什么? -
数据类型为日期时间
-
那你为什么要将
DateTime转换为String,然后又转换回DateTime?只需将原始DateTime分配给Value属性:this.dateTimePickerFixedAmountEndDate.Value = (DateTime) sqlDR["dFixedAmountEndDate"];
标签: c# datetimepicker