gpt4 book ai didi

c# - 使用 C# 在 PostgreSQL 上 float

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

我在用这个

这是我在 cmd 中发送的数据类型:

NpgsqlTypes.NpgsqlDbType.Real;

我在这里检查它是一个数值:

   public bool IsNumeric(String value){
try{
float.Parse(value);
return true;
}
catch(Exception e){
return false;
}
}

这是修改表:

ALTER TABLE "Medicine" ADD COLUMN "Price" real; ALTER TABLE "Medicine" ALTER COLUMN "Price" SET NOT NULL;

表数据类型也是 Real,这就是我如何保存“float”因为它看到 PostgreSQL 没有 float。我试过双倍,金钱,数字,但仍然不起作用。数字插入到表中,但没有“。”,例如,我写 12.34 并插入 1234。调试时已经检查了所有内容。

我该如何解决这个问题?

最佳答案

首先,您的 isNumeric 函数是检查字符串值是否为数字的糟糕方法,这是对 try-catch 构造的极好使用 ...

您应该使用如下正则表达式检查字符串是否为数字:

public static bool IsNumeric(string value)
{
bool match;
//regular expression to match numeric values
string pattern = "(^[-+]?\\d+(,?\\d*)*\\.?\\d*([Ee][-+]\\d*)?$)|(^[-+]?\\d?(,?\\d*)*\\.\\d+([Ee][-+]\\d*)?$)";
Regex regEx = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
match = regEx.Match(value).Success;
return match;
}

然后要将 REAL 值插入表中,您应该将其转换为 Single .NET 数据类型,查看 this question answer 中的表.

关于c# - 使用 C# 在 PostgreSQL 上 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9450161/

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