Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将DateTime变量存储到局部C#变量中_C#_Sql Server_Datetime_Formatexception - Fatal编程技术网

将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();