Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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# 从c中的cmd.Parameters获取返回值?_C#_Asp.net_Sql_Parameters - Fatal编程技术网

C# 从c中的cmd.Parameters获取返回值?

C# 从c中的cmd.Parameters获取返回值?,c#,asp.net,sql,parameters,C#,Asp.net,Sql,Parameters,我刚刚将一个vb.net应用程序转换成c,其中一行是从参数中获取@ReturnValue 我最后不得不投下很多东西 难道没有更简单的方法吗 这是我的 int rc = ((System.Data.SqlTypes.SqlInt32)(((System.Data.SqlClient.SqlParameter)(cmd.Parameters["@ReturnValue"])).SqlValue)).Value; 在vb.net中,这样做很简单 Dim rc As Integer = Convert

我刚刚将一个vb.net应用程序转换成c,其中一行是从参数中获取@ReturnValue

我最后不得不投下很多东西

难道没有更简单的方法吗

这是我的

int rc = ((System.Data.SqlTypes.SqlInt32)(((System.Data.SqlClient.SqlParameter)(cmd.Parameters["@ReturnValue"])).SqlValue)).Value;
在vb.net中,这样做很简单

Dim rc As Integer = Convert.ToInt32(cmd.Parameters("@ReturnValue").Value)
更容易:-


但是C的问题是属性值不可用,除非我强制转换为SqlParameter,并且我还需要强制转换为Sqltypes.SqlInt32-我不能只进行标准转换。在C中进行转换同样容易:

int rc = (int) cmd.Parameters("@ReturnValue").Value;

在C中也很容易做到:

int rc = (int) cmd.Parameters("@ReturnValue").Value;

这不是C和VB.NET之间的较量,而是关于你用来声明变量的类型。如果cmd是一个IDbCommand,那么您需要进行大量的铸造

属性返回包含对象实例集合的。由于对象并没有名为Value的属性,所以在访问该值之前,需要将每个实例强制转换为


相比之下,是包含实例集合的。如果将cmd变量声明为SqlCommand,则可以使用您习惯的简单方式访问其参数值。以与SqlClient命名空间中的实现紧密耦合为代价。

这不是C与VB.NET之间的较量,而是关于您用来声明变量的类型。如果cmd是一个IDbCommand,那么您需要进行大量的铸造

属性返回包含对象实例集合的。由于对象并没有名为Value的属性,所以在访问该值之前,需要将每个实例强制转换为


相比之下,是包含实例集合的。如果将cmd变量声明为SqlCommand,则可以使用您习惯的简单方式访问其参数值。以与SqlClient命名空间中的实现紧密耦合为代价。

OP写道:C的问题是属性值不可用,除非我强制转换…OP写道:C的问题是属性值不可用,除非我强制转换。。。