У меня есть хранимая процедура, которая возвращает строку:Получить выход для хранимой процедуры в формате строка в C#
DECLARE @SqlStatement VARCHAR(MAX)
SELECT @SqlStatement =
COALESCE(@SqlStatement, '') + 'DROP TABLE [TMP].' + QUOTENAME(TABLE_NAME) + ';' + CHAR(13)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TMP'
PRINT @SqlStatement
Я пытаюсь вернуть строку как так:
var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBBASE"].ConnectionString);
using (var cmd = new SqlCommand("proSQL", con)
{
CommandType = CommandType.StoredProcedure
})
{
cmd.Parameters.Add("SqlStatement", SqlDbType.VarChar);
var returnParameter = cmd.Parameters.Add("@SqlStatement", SqlDbType.VarChar);
returnParameter.Direction = ParameterDirection.Output;
con.Open();
cmd.ExecuteNonQuery();
var result = returnParameter.Value;
}
Когда я запускаю код, я получаю ошибку:
Procedure proSQL has no parameters and arguments were supplied
Я не уверен, что я делаю неправильно. Может кто-нибудь, пожалуйста, скажите мне, как получить результат для хранимой процедуры в формате строки?
где '@ ReturnVal' является SP –
@Ganesh_Devlekar Нет, только что отредактировал вопрос – nate
Я тоже думал о возврате, но нет. Используйте returnParameter.Direction = ParameterDirection.Output вместо – Jauch