Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从SQL Server获取ado.net中数字数据类型的值_C#_Asp.net_Sql Server_Ado.net - Fatal编程技术网

C# 如何从SQL Server获取ado.net中数字数据类型的值

C# 如何从SQL Server获取ado.net中数字数据类型的值,c#,asp.net,sql-server,ado.net,C#,Asp.net,Sql Server,Ado.net,我正在用ADO.NET编写应用程序,希望选择一个数值类型为numeric9,2。但我不知道如何使用这个值,我的意思是我不能使用这个值 因此,它应该被强制转换到哪个数据类型 Decimal decimalLastModifiedWaitingForApprovalcurrency = 0; decimalLastModifiedWaitingForApprovalcurrency = (Decimal)(cmd.ExecuteScalar()); 我也试过这个 Convert.ToDecimal

我正在用ADO.NET编写应用程序,希望选择一个数值类型为numeric9,2。但我不知道如何使用这个值,我的意思是我不能使用这个值

因此,它应该被强制转换到哪个数据类型

Decimal decimalLastModifiedWaitingForApprovalcurrency = 0;
decimalLastModifiedWaitingForApprovalcurrency = (Decimal)(cmd.ExecuteScalar());
我也试过这个

Convert.ToDecimal(cmd.ExecuteScalar());
我考虑过这可以被转换成十进制,但它的给出是错误的

那么,SQL server数字数据类型在C中的数字等价物是什么?

仅限十进制。您使用的数据类型正确

仅检查完整列表的小数点。您使用的数据类型正确

检查完整列表

因为您使用的是ExecuteScalar,所以它将值作为对象返回。如果您不太确定它选择了哪种CLI类型,请查看:

object value = cmd.ExecuteScalar();
Debug.WriteLine(value.GetType().Name);
因为您使用的是ExecuteScalar,所以它将值作为对象返回。如果您不太确定它选择了哪种CLI类型,请查看:

object value = cmd.ExecuteScalar();
Debug.WriteLine(value.GetType().Name);

尝试Convert.ToDoublecmd.ExecuteScalar;如果不起作用,请告诉我。

尝试Convert.ToDoublecmd.ExecuteScalar;如果这不起作用,请告诉我。

你会犯什么错误?你会犯什么错误?太好了。欢迎回来:@Murali我离开过吗?没有。但我是一个阅读你答案和学习c的粉丝,林克:我看了很久你的帖子。。非常感谢:谢谢,马克,我找到了问题所在。实际上,我想从第3列中获取值,但executescalar返回该行的第1列。这就是为什么它给出了错误的投射错误。如果我想从行中获取第三列值,那么如何使用executescalar获取该值?你有idea@vivekjainExecuteScalar只返回第一列、第一行、第一个网格;如果您需要更多的东西,请使用不同的查询API—可能是ExecuteReader,或者像dapper这样的东西,为您提供更好的服务。欢迎回来:@Murali我离开过吗?没有。但我是一个阅读你答案和学习c的粉丝,林克:我看了很久你的帖子。。非常感谢:谢谢,马克,我找到了问题所在。实际上,我想从第3列中获取值,但executescalar返回该行的第1列。这就是为什么它给出了错误的投射错误。如果我想从行中获取第三列值,那么如何使用executescalar获取该值?你有idea@vivekjainExecuteScalar只返回第一列、第一行、第一个网格;如果您需要更多的东西,请使用不同的查询API—可能是ExecuteReader,也可能是dapper之类的东西来为您完成