将数据从sqlserver解析为c#
我需要一些解析日期的指导。我的数据库表包含值 ID(int)和日期(日期时间:yyyy mm dd HH:mm:ss.fff格式)和状态 范例 我有一个C#程序,它在这个表中查找status=1和date not null,并希望在文本文件中以相同的格式插入ID和date。 文本文件应该有将数据从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 =
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)代码>