gpt4 book ai didi

c# - Npgsql 中的 InvalidCastException

转载 作者:行者123 更新时间:2023-11-29 13:06:59 25 4
gpt4 key购买 nike

enter image description here

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

代码:

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

最佳答案

尝试转换为十进制而不是 double 。

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

此外,如果这是生产代码,您将希望参数化您的 SQL 而不是在其中附加参数值,否则您将面临潜在的 SQL 注入(inject)攻击并且可能还会出现性能问题。

有几个主题讨论了 .NET 中的货币数据类型,这可能也会有所帮助。这是一个:Does anyone know of a money type in .NET?

关于c# - Npgsql 中的 InvalidCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com