我只是从SQLite表读取值并将它们存储到列表中。到目前为止,我已经能够成功地对每一列进行此操作,大多数列只有常规格式的数量;即只是没有任何其他字符的普通数字。
问题:
当我尝试阅读YYYY-MM列时,它不起作用,因为我的yymm列表没有填充。 我认为这是因为YYYY-MM列中的数字(注意它们在数据库中设置为文本)在那里有一个“ - ”符号。
这是我的datagridview中实际的YYYY-MM列的视图(注意这里表中的所有内容都是text数据类型,尽管它们是数字)
那么我做错了什么?
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);
}
}
答案 0 :(得分:1)
您需要使用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);
}