If вы хотите получить [@errormessage] и распечатать его на странице ASPX, тогда вам нужно использовать Par ameterDirection.Output
Основываясь на вашем комментарии, я пишу полный код и тестировал его на своем локальном компьютере, он работает так, как ожидалось. Пожалуйста, попробуйте еще раз.
using System;
using System.Data;
using System.Data.SqlClient;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Program.RunSPWithParameterOutput();
}
public static void RunSPWithParameterOutput()
{
string PredefinedConnectionString = "Data Source=localhost;Initial Catalog=Adventure;Integrated Security=SSPI";
using (SqlConnection conn = new SqlConnection(PredefinedConnectionString))
using (SqlCommand cmd = new SqlCommand("dbo.usp_ItemMasterIns", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
// set up the parameters
cmd.Parameters.Add("@ItemsCode", SqlDbType.VarChar, 30);
cmd.Parameters.Add("@ItemsDesc", SqlDbType.VarChar, 30);
cmd.Parameters.Add("@ErrorMessage", SqlDbType.VarChar, 200).Direction = ParameterDirection.Output;
// set parameter values
cmd.Parameters["@ItemsCode"].Value = "test";
cmd.Parameters["@ItemsDesc"].Value = "test";
// open connection and execute stored procedure
conn.Open();
cmd.ExecuteNonQuery();
// read output value from @ErrorMessage
string ErrorMessage = cmd.Parameters["@ErrorMessage"].Value.ToString();
Console.WriteLine(ErrorMessage);
conn.Close();
}
}
}
}
Процедура тестового магазина, развернутая на моем местном.
create procedure usp_ItemMasterIns (@ItemsCode varchar(100),
@ItemsDesc varchar(30),
@ErrorMessage varchar(200) output
)
as
begin
set @ErrorMessage='test error message'
end
Я выполнил ваш код, но исключение sql выбрано так: «Процедура или функция« ItemMasterIns »ожидает параметр« @ErrorMsg », который не был указан». Пожалуйста, помогите мне –
Пожалуйста, попробуйте этот код. – 2013-03-29 00:45:54