Я создал проект linq2sql, в котором у меня есть метод расширения для вызова SP. Этот метод расширения имеет несколько особенностей:Выходные параметры сохраненной процедуры не обновляются
- Он может вызывать SP с табличными значениями.
- Он может принимает как входные и выходные параметры
- Она будет обрабатывать множественный набор результатов
метод расширения -
public partial class TestLinq2SqlDataContext : DataContext
{
public IMultipleResults ExceuteProcedure(string spName, IEnumerable<SqlParameter> parameters, SqlConnection sqlConnection, out SqlDataReader reader)
{
reader = null;
try
{
sqlConnection.Open();
var cmd = new SqlCommand
{
Connection = sqlConnection,
CommandText = spName,
CommandType = CommandType.StoredProcedure
};
cmd.Parameters.AddRange(parameters.ToArray());
reader = cmd.ExecuteReader();
return Translate(reader);
}
catch (Exception)
{
}
return null;
}
}
Я зову ниже SP -
CREATE PROCEDURE USP_OutPutParameterCheck(
@Id int OUTPUT,
@Name nvarchar(50) OUTPUT)
AS
BEGIN
SET @Id = 12 SET @Name = N'NameSet for OutputParameter'
END
Мои Код C#
public static void Main(){
context = new TestLinq2SqlDataContext();
#region USP_OutPutParameterCheck
var connection1 = context.Connection as SqlConnection;
SqlDataReader dataReader1;
var outParam1 = new SqlParameter
{
Direction = ParameterDirection.Output,
Value = "Abc",
DbType = DbType.String,
ParameterName = "@Name"
};
var outParam2 = new SqlParameter
{
Direction = ParameterDirection.Output,
Value = 1,
DbType = DbType.Int32,
ParameterName = "@Id"
};
var parameters11 = new[]
{
outParam1,
outParam2
};
var data21 = context.ExceuteProcedure("USP_OutPutParameterCheck", parameters11, connection1, out dataReader1);
}
Теперь, когда я проверяю значение выходных параметров в режиме отладки я получаю «значения s идеально но для @Name
параметра я только получаю „The @Id
N“ значения вместо „NameSet для OutputParameter“
Может ли кто-нибудь помочь мне, где я ошибаюсь?
Благодаря
UPDATE:
Добавление Скриншот, видя значения параметров в режиме отладки -
Спасибо, это сработало .. :) – arpitbakshi