无法将SQLite数据库中的列值读入C#列表

时间:2013-11-18 22:53:29

标签: c# sqlite

我只是从SQLite表读取值并将它们存储到列表中。到目前为止,我已经能够成功地对每一列进行此操作,大多数列只有常规格式的数量;即只是没有任何其他字符的普通数字。

问题:

当我尝试阅读YYYY-MM列时,它不起作用,因为我的yymm列表没有填充。 我认为这是因为YYYY-MM列中的数字(注意它们在数据库中设置为文本)在那里有一个“ - ”符号。

这是我的datagridview中实际的YYYY-MM列的视图(注意这里表中的所有内容都是text数据类型,尽管它们是数字)

enter image description here

那么我做错了什么?

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);
    }
}

1 个答案:

答案 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);
}