【发布时间】:2021-05-08 20:01:15
【问题描述】:
我正在从 SQL Server 获取以下列的详细信息:
Size
Precision
Scale
但我注意到,在 int 的情况下,我的精度为 10,但是当我进行一些研究时,我找不到任何与 int 相关的东西,并且 int 数据类型的精度为 10 或在 SQL Server Management 中工作室。
所以我不知道在 int 数据类型的情况下 10 的精度如何。
表格:
截图:
代码:
String[] columnRestrictions = new String[4];
columnRestrictions[0] = 'MyDb';
columnRestrictions[1] = 'dbo';
columnRestrictions[2] = 'Employee';
using (SqlConnection con = new SqlConnection("MyConnectionString"))
{
con.Open();
var columns = con.GetSchema("Columns", columnRestrictions).AsEnumerable()
.Select
(
t => new
{
Name = t[3].ToString(),
Datatype = t.Field<string>("DATA_TYPE"),
IsNullable = t.Field<string>("is_nullable"),
Size = t.Field<Int32?>("character_maximum_length"),
NumericPrecision = t.Field<int?>("NUMERIC_PRECISION"),
NumericScale = t.Field<Int32?>("NUMERIC_SCALE")
}).ToList();
【问题讨论】:
-
如果您查看int datatype,您会发现它可以存储的最大值需要(最多)10 个十进制数字来表示。因此,如果某事坚持要为
int提供精确度,那么提供这并不是一个不合理的答案。 -
Precision is the number of digits in a number,32 位 int 的最大位数为 10。(bigint 为 19)
-
@Damien_The_Unbeliever :所以在 int 数据类型的情况下我的输出正确为 10???
-
@TimSchmelter:先生,我想问你一件事,为什么你删除了我这个问题的答案(stackoverflow.com/questions/41062636/…)虽然它是正确的。我正准备将其标记为已接受的答案,但你删除了它
标签: c# .net sql-server linq ado.net