【发布时间】:2020-11-24 18:59:08
【问题描述】:
如何从 SqlLite Db 中读取 DateTime 字段?我收到以下错误:
System.FormatException: 'String '01.06.2001 00:00' was not recognized as a valid DateTime.'
我使用的方法如下。我可以在调试模式下看到正在读入其他字段,但一旦涉及到 DateTime 字段,它就会失败。
public static SingleTable QueryDbTable(string sqlSelect)
{
var result = new SingleTable();
var fileUrl = @"URI=file:C:Url\Database\DB.db";
using var con = new SQLiteConnection(fileUrl); con.Open();
using var cmd = new SQLiteCommand(sqlSelect, con);
using SQLiteDataReader dr = cmd.ExecuteReader();
var cols = dr.FieldCount;
while (dr.Read())
{
var singleRow = new SingleRow();
for (var i = 6; i < cols; i++)
{
if (!dr.IsDBNull(i))
{
singleRow.Col.Add(dr.GetValue(i).ToString());
continue;
}
singleRow.Col.Add("");
}
result.Table.Add(singleRow);
}
return result;
}
链接的类:
public class SingleTable
{
public List<SingleRow> Table { get; set; } = new List<SingleRow>();
}
public class SingleRow
{
public List<string> Col { get; set; } = new List<string>();
}
目标只是将系统中的字段作为表格读取。
我也尝试过以各种方式将其保存到变量中(大多数是愚蠢的尝试),但它给出了相同的错误。
var item = dr.GetDateTime(i);
虽然这些是基础知识,但我找不到它可以解释如何读取数据,但如何选择或仅插入。
任何建议,如何将 DateTime 元素存储在变量中?
【问题讨论】:
-
不,已经试过了。意思是,解析到
DateTime.Parse(readList["dob"].ToString())它不能在整个项目中读取。以任何方式。只是在一个变量中。似乎我缺少一些简单的东西。