C# 从c中的cmd.Parameters获取返回值?
我刚刚将一个vb.net应用程序转换成c,其中一行是从参数中获取@ReturnValue 我最后不得不投下很多东西 难道没有更简单的方法吗 这是我的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
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的问题是属性值不可用,除非我强制转换。。。