将数据从sqlserver解析为c#

将数据从sqlserver解析为c#,c#,sql-server,datetime,C#,Sql Server,Datetime,我需要一些解析日期的指导。我的数据库表包含值 ID(int)和日期(日期时间:yyyy mm dd HH:mm:ss.fff格式)和状态 范例 我有一个C#程序,它在这个表中查找status=1和date not null,并希望在文本文件中以相同的格式插入ID和date。 文本文件应该有 1000 2014-02-18 20:32:20.657 2000 2014-02-18 20:32:20.658 这是密码 using (SqlConnection connection =

我需要一些解析日期的指导。我的数据库表包含值 ID(int)和日期(日期时间:yyyy mm dd HH:mm:ss.fff格式)和状态 范例

我有一个C#程序,它在这个表中查找status=1和date not null,并希望在文本文件中以相同的格式插入ID和date。 文本文件应该有

1000    2014-02-18 20:32:20.657
2000    2014-02-18 20:32:20.658
这是密码

using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString))
{
    connection.Open();
    SqlCommand cmdSel = new SqlCommand(sqlSelNew, connection);
    SqlDataReader reader1 = cmdSel.ExecuteReader();
    while (reader1.Read())
    {
      DataSet ds = GetData(sqlSelNew);
      CultureInfo _provider = CultureInfo.InvariantCulture;
       ID = Convert.ToInt32(reader1["ID"].ToString());
       string dtformat = @"yyyy/MM/dd HH:mm:ss.fff";
       var d = DateTime.ParseExact(dateresized,dtformat , _provider);
       using (StreamWriter sw = new StreamWriter(txtfilepath, true))
        {
            sw.BaseStream.Seek(0, SeekOrigin.End);
            sw.WriteLine(ID + "   " + d);
            sw.Flush();
            sw.Close();
        }
我得到“字符串未被识别为有效的日期时间。”错误。我该怎么办? 谢谢
Rashmi

首先,您不必解析日期。您应该能够使用
reader.GetDateTime()
读取该列并分配它。其次,为什么您要填写
数据集
,并使用
SqlDataReader
直接获取值?我希望有一个或另一个,但不是两个都有。第三,在实现
IDisposable
时,应该使用
语句将读者包装在

using (var reader1 = cmdSel.ExecuteReader())
{
    while (reader1.Read())
    {
       var id = reader1.GetInt32(0);
       var date = reader1.GetDateTime(1);

       ...
    }
}

首先,您不必解析日期。您应该能够使用
reader.GetDateTime()
读取该列并分配它。其次,为什么您要填写
数据集
,并使用
SqlDataReader
直接获取值?我希望有一个或另一个,但不是两个都有。第三,在实现
IDisposable
时,应该使用
语句将读者包装在

using (var reader1 = cmdSel.ExecuteReader())
{
    while (reader1.Read())
    {
       var id = reader1.GetInt32(0);
       var date = reader1.GetDateTime(1);

       ...
    }
}

我做了上面的更改。txt文件的日期格式不同,即1000 2/18/2014 9:04:06 PM,而不是2014-02-11 21:04:06。770@Rashmi-您需要在数据输出上使用格式,而不是在解析输入时使用格式,以指定所需内容,例如,
sw.WriteLine(“{0}{1:yyyy/MM/dd HH:MM:ss.fff}”,id,date)我做了上面的更改。txt文件的日期格式不同,即1000 2/18/2014 9:04:06 PM,而不是2014-02-11 21:04:06。770@Rashmi-您需要在数据输出上使用格式,而不是在解析输入时使用格式,以指定所需内容,例如,
sw.WriteLine(“{0}{1:yyyy/MM/dd HH:MM:ss.fff}”,id,date)