【问题标题】:Read out Double and DateTime from NOSQL Database从 NOSQL 数据库中读出 Double 和 DateTime
【发布时间】:2018-12-12 17:55:49
【问题描述】:

我想用 C# 从 SQLite 数据库中读取双精度和日期。

数据库:

  • 日期:数字
  • 钱:真实

代码:

SQLiteConnection dbConnection = new SQLiteConnection("Data Source = " + nameDB + ".sqlite; Version = 3;");
dbConnection.Open();

String sql = $"SELECT * FROM banking";
SQLiteCommand command = new SQLiteCommand(sql, dbConnection);
SQLiteDataReader reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine("date: " + Convert.ToDateTime( reader["date"]) );
    Console.WriteLine("money: " + reader["money"]);
}

dbConnection.Close();

问题出在我的数据库数据是这样的:

date: 28.06.2017 14:45:24
money: 20,50

我的输出是这样的:

reader[date]: 28,06
reader[money]: 20 

我能说读者将money 读为doubledate 读为DateTime 吗?

【问题讨论】:

    标签: c# sqlite datetime double


    【解决方案1】:
    reader.GetDouble(reader.GetOrdinal("money"));
    reader.GetDateTime(reader.GetOrdinal("date"))
    

    请参阅Docs 了解SqliteDataReader 的所有可用方法

    【讨论】:

    • 感谢这项工作。我发现我的问题:有时数据库用逗号而不是点来保存实数。这给出了错误格式的错误
    【解决方案2】:

    doubleDateTime 使用解析方法。试试看:

    while (reader.Read())
    {
        var date =DateTime.Parse(reader["date"].ToString());
        var money = double.Parse(reader["money"].ToString("0.##"));
    }
    

    【讨论】:

    • 它的工作日期,但钱的小数点后没有小数
    • @Gh0stscript,已编辑请重试
    • 那里我收到错误“ToString 方法没有重载需要 1 个参数”
    猜你喜欢
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 2012-12-25
    • 2012-05-08
    相关资源
    最近更新 更多