将DateTime变量存储到局部C#变量中
我相信我的问题看起来很业余,但我的目标是从数据库中获取将DateTime变量存储到局部C#变量中,c#,sql-server,datetime,formatexception,C#,Sql Server,Datetime,Formatexception,我相信我的问题看起来很业余,但我的目标是从数据库中获取DateTime数据并将其存储到局部变量中。我的代码片段已添加到下面: string checkdu1 = "select Top 1 Date from CF"; SqlCommand cmdd = new SqlCommand(checkdu1, con); SqlDataReader dru1 = cmdd.ExecuteReader(); DateTime d1 = Convert.ToDateTime("Date");
DateTime
数据并将其存储到局部变量中。我的代码片段已添加到下面:
string checkdu1 = "select Top 1 Date from CF";
SqlCommand cmdd = new SqlCommand(checkdu1, con);
SqlDataReader dru1 = cmdd.ExecuteReader();
DateTime d1 = Convert.ToDateTime("Date"); //error here
数据库名称为CF,将检索Date
列的值。但是我得到了一份工作
mscorlib.dll中发生“System.FormatException”类型的异常,但未在用户代码中处理
其他信息:字符串未被识别为有效的DateTime。有一个从索引0开始的未知单词
数据库中Date
的数据类型为DateTime
我找不到合适的答案,非常感谢您的帮助。您试图将“日期”一词转换为日期,这是行不通的 试试像这样的东西
DateTime d1 = dru1.GetDateTime(dru1.GetOrdinal("Date"));
您试图将“日期”一词转换为日期,这是行不通的 试试像这样的东西
DateTime d1 = dru1.GetDateTime(dru1.GetOrdinal("Date"));
我认为这应该可以工作
DateTime dt=Convert.ToDateTime(dru1[“Date”])代码>我认为这应该有效DateTime dt=Convert.ToDateTime(dru1[“Date”])代码>首先,您没有对任何东西使用dru1
在这里查找如何使用阅读器
第二,由于日期字段是数据类型DateTime,因此转换它没有意义;这是一个日期。首先,您没有对任何事情使用dru1
在这里查找如何使用阅读器
第二,由于日期字段是数据类型DateTime,因此转换它没有意义;这是一个日期。根据代码示例,您有两个选项:
1使用数据读取器
2使用ExecuteScalar
基于代码示例,您有两个选项:
1使用数据读取器
2使用ExecuteScalar
要转换的参数。ToDateTime应该是要转换的值显示数据库中表中的内容要转换的参数。ToDateTime应该是要转换的值显示数据库中表中的内容谢谢!我尝试了这个,但它给了我一个InvalidOperationException。别忘了执行reader.Read()
。在本例中,dru1.Read()
。它返回一个bool
,因此在试图获取数据之前检查它是否正确是明智的。@TyCobb是正确的。或者,如果您的代码片段代表您的实际代码(即返回一行一列),您可以放弃整个DataReader
内容,只需调用cmdd.ExecuteScalar
——这将返回第一个结果的第一列,然后您可以将其转换为日期时间,例如d1=Convert.ToDateTime(cmdd.ExecuteScalar());
(假设SQL将始终返回有效日期)感谢您的帮助!问题已经解决。非常感谢:)谢谢!我尝试了这个,但它给了我一个InvalidOperationException。别忘了执行reader.Read()
。在本例中,dru1.Read()
。它返回一个bool
,因此在试图获取数据之前检查它是否正确是明智的。@TyCobb是正确的。或者,如果您的代码片段代表您的实际代码(即返回一行一列),您可以放弃整个DataReader
内容,只需调用cmdd.ExecuteScalar
——这将返回第一个结果的第一列,然后您可以将其转换为日期时间,例如d1=Convert.ToDateTime(cmdd.ExecuteScalar());
(假设SQL将始终返回有效日期)感谢您的帮助!问题已经解决。非常感谢:)谢谢您的建议!谢谢你的建议!谢谢你的帮助:)谢谢你的帮助:)谢谢你的帮助!!谢谢你的帮助!!
string checkdu1 = "select Top 1 Date from CF";
SqlCommand cmdd = new SqlCommand(checkdu1, con);
DateTime d1 = (DateTime) cmdd.ExecuteScalar();