C# 无法将SQLite数据库中的列值读取到C列表中
我只是从SQLite表中读取值并将它们存储到列表中。到目前为止,我已经能够在每一列中成功地做到这一点,大多数列中都有一些常规格式;i、 e只是没有任何其他字符的普通数字 问题: 当我尝试读取YYYY-MM列时,它不起作用,因为我的yymm列表没有填充。 我认为这是因为在YYYY-MM列中,这些数字被设置为数据库中的文本,在那里有一个-符号 这是我的datagridview注释中实际YYYY-MM列的视图,表中的所有内容都是文本数据类型,尽管它们是数字 那么我做错了什么C# 无法将SQLite数据库中的列值读取到C列表中,c#,sqlite,C#,Sqlite,我只是从SQLite表中读取值并将它们存储到列表中。到目前为止,我已经能够在每一列中成功地做到这一点,大多数列中都有一些常规格式;i、 e只是没有任何其他字符的普通数字 问题: 当我尝试读取YYYY-MM列时,它不起作用,因为我的yymm列表没有填充。 我认为这是因为在YYYY-MM列中,这些数字被设置为数据库中的文本,在那里有一个-符号 这是我的datagridview注释中实际YYYY-MM列的视图,表中的所有内容都是文本数据类型,尽管它们是数字 那么我做错了什么 string sql6 =
string sql6 = "select YYMM, TotalTrans from t2 where CAST(TotalTrans as Real) < 1000.00";
SQLiteCommand command3 = new SQLiteCommand(sql6, sqlite_conn);
SQLiteDataReader reader3 = command3.ExecuteReader();
while (reader3.Read())
{
int yyyymm;
double TotalTrans;
if (int.TryParse(reader3["YYMM"].ToString(), out yyyymm) && double.TryParse(reader3["TotalTrans"].ToString(), out TotalTrans) )
{
YYMM.Add(yyyymm);
TotalTransIrregularities.Add(TotalTrans);
}
}
您需要使用DateTime.TryParse而不是int.TryParse
试试这个:
DateTime yyyymm;
if(DateTime.TryParse(reader3["YYMM"].ToString(),out yyyymm) && double.TryParse(reader3["TotalTrans"].ToString(), out TotalTrans) )
{
YYMM.Add(yyyymm.ToString("yyyy")+"-"+yyyymm.ToString("MM"));
TotalTransIrregularities.Add(TotalTrans);
}
YYMM列的数据类型是什么?为什么要将它转换为字符串,然后将字符串转换为整数?这两个都不是日期。