您可以通过更改输出来解决问题
SqlParameter
通过添加诸如
SqlDbType.NVarChar
或
SqlDbType.VarChar
。
这是正确的代码
var xparams = new SqlParameter[] {
new SqlParameter("@Start", 10),
new SqlParameter("@End", 20),
new SqlParameter("@output", SqlDbType.NVarChar, 4000) { Direction = ParameterDirection.Output }
};
SchoolContext _context = new SchoolContext();
_context.Database.ExecuteSqlRaw("exec GetMe @Start, @End, @output output", xparams);
var ReturnValue = ((SqlParameter)xparams[2]).Value;
Sql参数
有7个构造函数,则使用构造函数#1,但应该使用构造函数#2或#3:
-
SqlParameter(string parameterName, object value)
-
SqlParameter(string parameterName, SqlDbType dbType, int size)
-
SqlParameter(string parameterName, SqlDbType dbType)
-
SqlParameter()
-
SqlParameter(string parameterName, SqlDbType dbType, int size, ParameterDirection direction, bool isNullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value)
-
SqlParameter(string parameterName, SqlDbType dbType, int size, ParameterDirection direction, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, bool sourceColumnNullMapping, object value, string xmlSchemaCollectionDatabase, string xmlSchemaCollectionOwningSchema, string xmlSchemaCollectionName)
-
SqlParameter(string parameterName, SqlDbType dbType, int size, string sourceColumn)