Money和Decimal的SQL类型在.NET中都被解释为Decimal,有什么方法可以区分它们吗?我正在尝试正确地设置Excel电子表格的格式,但不知道哪些字段应设置为货币格式,哪些字段应为小数。例如:
+----------------+------------------+--------------+-----------------+
| Name (VarChar) | Weight (Decimal) | Cost (Money) | Inventory (Int) |
+----------------+------------------+--------------+-----------------+
| Widget         | 3.75             | 9.99         |              25 |
+----------------+------------------+--------------+-----------------+上面的标题包括用于此问题的数据类型,query是从该表中选择的存储过程:
var result = conn.Query<dynamic>(query, parameters, commandType: CommandType.StoredProcedure).ToList();
foreach (var pair in (IDictionary<string, object>)result[0]) {
  Console.WriteLine($"{pair.Key}: {pair.Value.GetType().Name}");
}将导致:
Name: String
Weight: Decimal
Cost: Decimal
Inventory: Int32我找到了这篇文章:Money datatype and decimal type of SQL in .net,但不幸的是,我没有标准化的列名,因为这意味着要将任何结果集转换为Excel电子表格。
我还考虑过在需要时更改存储过程以预先挂起美元符号,但这样做的工作量会大得多,而且很可能会破坏其他功能。
有没有不同的方法来确定结果的SQL类型?
https://stackoverflow.com/questions/50729774
复制相似问题