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

C# 无法将SQLite数据库中的列值读取到C列表中,c#,sqlite,C#,Sqlite,我只是从SQLite表中读取值并将它们存储到列表中。到目前为止,我已经能够在每一列中成功地做到这一点,大多数列中都有一些常规格式;i、 e只是没有任何其他字符的普通数字 问题: 当我尝试读取YYYY-MM列时,它不起作用,因为我的yymm列表没有填充。 我认为这是因为在YYYY-MM列中,这些数字被设置为数据库中的文本,在那里有一个-符号 这是我的datagridview注释中实际YYYY-MM列的视图,表中的所有内容都是文本数据类型,尽管它们是数字 那么我做错了什么 string sql6 =

我只是从SQLite表中读取值并将它们存储到列表中。到目前为止,我已经能够在每一列中成功地做到这一点,大多数列中都有一些常规格式;i、 e只是没有任何其他字符的普通数字

问题:

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

这是我的datagridview注释中实际YYYY-MM列的视图,表中的所有内容都是文本数据类型,尽管它们是数字

那么我做错了什么

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列的数据类型是什么?为什么要将它转换为字符串,然后将字符串转换为整数?这两个都不是日期。