- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 SQL Server 中有一个存储过程,它的输出参数 pf 类型为 numeric(18,0)
。在 C# 中,我创建了一个带有 SqlDbType.Decimal
的 SqlParameter
,并将精度设置为 18,将比例设置为 0。
这是我的代码:
queryParameters[2] = new SqlParameter("@Id", SqlDbType.Decimal);
queryParameters[2].Precision = 18; // # digits
queryParameters[2].Scale = 0; // # decimals
queryParameters[2].Direction = ParameterDirection.Output;
存储过程正确执行,并正确返回输出参数,但是当我在 C# 中将其解析为长变量时,如下所示:
long id = (long)queryParameters[2].Value;
它说不能转换它。
但是如果我将 SqlParameter
类型修改为 SqlDbType.Bigint
,那么它就可以工作了。
所以我通过将其作为 SqlDbType.BigInt
进行传递是正确的吗?或者最好将其作为 SqlDbType.Decimal
传递,然后使用十进制 C# 变量而不是 long?
将其作为 SqlDbType.Decimal
传递,然后执行以下操作也有效:
decimal id = (decimal)queryParameters[2].Value;
那么什么方法最好考虑到这个数字是一个没有小数的整数?
最佳答案
如果它在数据库中被定义为 numeric(...)
,那么它在 C# 中必须是 decimal
- 无论是(currently) 逗号后是否有数字。
不要将它错误地表示为 bigint
/long
- 它显然不是那种类型!另外 - 为什么你首先要尝试解析它/将它转换成 long
?对我来说毫无意义......它看起来像一个 decimal
,走路像一个 decimal
,叫声像一个 decimal
- 然后你'我很确定 它是 decimal
!
如果您的 SQL Server 类型突然更改为 numeric(20,2)
会怎样?通过在 C# 中使用 decimal
- 没问题,无需更改。如果您使用的是 long
,现在您需要开始将代码更改为 decimal
。
始终使用最合适的类型 - 对于 T-SQL numeric()
,这是 C#/.NET 中的 decimal
。
关于c# - 将参数从 C# : Which SQLDbType to use for numeric(18, 0) 传递到存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44048352/
我以默认数字 js 格式存储数字和货币格式。我允许用户根据他们的区域设置拥有自己的格式。我正在尝试弄清楚如何将他们的自定义格式转换回默认格式,以便一致地存储它,以防他们更改语言环境。 例如设置电流:
我以默认数字 js 格式存储数字和货币格式。我允许用户根据他们的区域设置拥有自己的格式。我正在尝试弄清楚如何将他们的自定义格式转换回默认格式,以便一致地存储它,以防他们更改语言环境。 例如设置电流:
我正在为 as.POSIXct.numeric 苦苦挣扎。以下代码有效: dates <- structure(c(1649285787, 1651134684), class = c("POSIXc
我正在使用 Azavea Numeric Scala 库进行通用数学运算。但是,我无法将它们与 Scala Collections API 一起使用,因为它们需要 scala Numeric,并且
我在仔细阅读文档时注意到,Numeric 类有一个方法 arg,其解释为“如果值为正,则返回 0,否则返回 pi。直接在这个上面的docs 是一个名为 angle 的方法,其解释相同。 我不明白这个方
我试图总结两列并获得错误:二进制运算符的非数字参数。但是,这两列都是数字。因此,我不明白为什么会收到此错误消息。谢谢你的帮助? data_all% mutate(total='5min'+'10min
我正在尝试创建六个站点上物种丰富度的热图。 我有一个站点与物种的矩阵,其中有数字丰度数据。 但是,当我运行代码时,R返回一个错误,指出我的矩阵是非数字的。 谁能想到这个?我感到难过。 导出的数据框链接
我正在使用一个返回 float 的java函数 private float getEventScaledX(float eventX, float resX) { return (eventX
我有一个函数接收 SearchCriteria 的集合对象:列名或键、运算符( = ### && :letter_date <= ### 我在两个日期之间查找。我不能两次使用相同的参数名称,因此我在遍
我正在尝试将值插入到表中,但我不断收到错误消息 ORA-01858: a non-numeric character was found where a numeric was expected 这是
sort 提供两种数字排序。这是来自手册页: -g, --general-numeric-sort compare according to general numerica
我遇到了一个奇怪的问题,将日期列与 SYSDATE 进行比较会产生以下错误: 01858. 00000 - "a non-numeric character was found where a nu
这是表格 CREATE TABLE Employee (EmpID number(5) primary key, SIN Number(9) Not null, Las
在 bash 中按 alt + numeric 会得到 (arg [numeric]) 那是什么? (这类问题更适合问人,而不是试图“猜测”正确的术语以通过互联网搜索文档)。 最佳答案 您要搜索的字词
当我执行准备好的语句时,我得到了 ORA-01858:在需要数字的地方发现了一个非数字字符。当我搜索一些论坛时,他们说这是因为日期数据类型。我准备好的声明是 insert into OPRS_ZON
我正在使用 Elasticsearch Java API 创建索引并编写搜索查询。 索引是在各种字段上创建的。字段之一是创建索引的数字(整数)。 现在我们得到的输入是字符串的形式。我们必须在所有字段中
我想重新映射启用 Numlock 的数字小键盘,使其表现得像关闭 Numlock 的数字小键盘,包括能够在按住 Shift/Ctrl 的情况下扩展选择范围。 我遇到的问题如下 Numpad8::Up
所以我有一个训练集,其中一个属性的域如下: A = {Type1, Type2, Type3, ... ,Type5} 如果域保持这种形式,我就无法应用线性回归,因为数学假设不可能成立,例如: H =
为什么我会通过 Java 应用程序执行此查询从 Oracle 收到上述 SQL 错误? SELECT * FROM TestSchema.TestTable WHERE userid = :userI
我在 JSP 中添加了以下代码,并在将实体保存到数据库时出现一些异常。 $('.validateWeight').click(function(event) { var id = event.tar
我是一名优秀的程序员,十分优秀!