1

在此处输入图像描述

我的问题是:我想通过总结两个日期之间的货币类型列来写结果。

代码:

using (NpgsqlConnection b = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=xxxxxxxx;DataBase=deneme;"))
        {
            try
            {
                b.Open();
                NpgsqlCommand c = new NpgsqlCommand("SELECT  SUM(tutar) FROM market where tarih between '" + dateTimePicker1.Value + "' and '" + dateTimePicker2.Value + "'", b);
                double toplam = ((double)c.ExecuteScalar());
                b.Close();
                b.Dispose();
                MessageBox.Show(toplam.ToString("n"));
            }
4

1 回答 1

2

尝试转换为十进制而不是双精度。

“money”类型的 Postgres 文档建议输出格式为“$1,000.00”(取决于语言环境),在这种情况下,您需要在转换之前解析返回值并删除标点符号。

此外,如果那是生产代码,您需要参数化您的 SQL 而不是在其中附加参数值,否则您可能会受到潜在的 SQL 注入攻击,并且可能还会出现性能问题。

有一些讨论 .NET 中的货币数据类型的线程也可能会有所帮助。这是一个问题:有人知道.NET 中的货币类型吗?

于 2011-07-30T15:49:32.173 回答