我需要一些解析日期的指导。我的数据库表包含值 ID(int)和日期(datetime:yyyy-mm-dd HH:mm:ss.fff格式)和状态 示例
1000 & 2014-02-18 20:32:20.657 & 1
2000 & 2014-02-18 20:32:20.658 & 1
3000 & NULL & -1
我有一个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();
}
我得到“字符串未被识别为有效的DateTime”。错误。我怎么处理这个? 谢谢 Rashmi
答案 0 :(得分:4)
首先,您不必解析日期。您应该只需使用reader.GetDateTime()
来读取该列并进行分配即可。其次,为什么要填写DataSet
并使用SqlDataReader
直接获取值?我期待一个或另一个,但不是两个。第三,你应该在实施using
时将你的读者包装在IDisposable
声明中。
using (var reader1 = cmdSel.ExecuteReader())
{
while (reader1.Read())
{
var id = reader1.GetInt32(0);
var date = reader1.GetDateTime(1);
...
}
}