sohrabi.1384
یک شنبه 02 آذر 1393, 20:39 عصر
سلام دوستان مبتدی هستم میخواسم پارامتر ErrorMessage از SQL رو به C# ارجاع بدم با روش ایجاد Query با دارای خروجی غیر مستقیم. که کد خطا با مسیج به C# ارسال شود اگر راهی نشان دهید ممنون میشم.
Proc Query:
CREATE PROC USP_ISP_Person
@ID INT,
@Name Nvarchar(20),
@Family Nvarchar(20),
@Age Nvarchar(20),
@ErrorMessage NVARCHAR(50) OUTPUT
AS
BEGIN
DECLARE @ErrorNumber INT
SET @ErrorNumber=0
SET @ErrorMessage=''
BEGIN TRY
INSERT Persons( ID,Name, Family,Age)
VALUES (@ID,@Name,@Family,@Age)
END TRY
BEGIN CATCH
SET @ErrorNumber= ERROR_NUMBER()
SET @ErrorMessage= ERROR_NUMBER()
END CATCH
RETURN @ErrorMessage
END
GO
C# code: bool InsertPerson(int ID,string Name,string Family, int Age)
{
SqlConnection CN = new SqlConnection("Data Source=LENOVO\\MHD;Initial Catalog=ADONETDB;Integrated Security=True");
try
{
SqlCommand Cmd = new SqlCommand();
Cmd.CommandText = "USP_ISP_Person";
Cmd.CommandType = CommandType.StoredProcedure;
//
Cmd.Parameters.AddWithValue("@ID", ID);
Cmd.Parameters.AddWithValue("@Name", Name);
Cmd.Parameters.AddWithValue("@Family", Family);
Cmd.Parameters.AddWithValue("@Age", Age);
Cmd.Connection = CN;
CN.Open();
SqlDataReader Dr = Cmd.ExecuteReader();
return true;
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
return false;
}
finally
{
CN.Close();
}
اما با Error :
Procedure Or Function 'USP_ISP_Person' Expects Parameter '@ErrorMessage' ,Which was not Supplied
Proc Query:
CREATE PROC USP_ISP_Person
@ID INT,
@Name Nvarchar(20),
@Family Nvarchar(20),
@Age Nvarchar(20),
@ErrorMessage NVARCHAR(50) OUTPUT
AS
BEGIN
DECLARE @ErrorNumber INT
SET @ErrorNumber=0
SET @ErrorMessage=''
BEGIN TRY
INSERT Persons( ID,Name, Family,Age)
VALUES (@ID,@Name,@Family,@Age)
END TRY
BEGIN CATCH
SET @ErrorNumber= ERROR_NUMBER()
SET @ErrorMessage= ERROR_NUMBER()
END CATCH
RETURN @ErrorMessage
END
GO
C# code: bool InsertPerson(int ID,string Name,string Family, int Age)
{
SqlConnection CN = new SqlConnection("Data Source=LENOVO\\MHD;Initial Catalog=ADONETDB;Integrated Security=True");
try
{
SqlCommand Cmd = new SqlCommand();
Cmd.CommandText = "USP_ISP_Person";
Cmd.CommandType = CommandType.StoredProcedure;
//
Cmd.Parameters.AddWithValue("@ID", ID);
Cmd.Parameters.AddWithValue("@Name", Name);
Cmd.Parameters.AddWithValue("@Family", Family);
Cmd.Parameters.AddWithValue("@Age", Age);
Cmd.Connection = CN;
CN.Open();
SqlDataReader Dr = Cmd.ExecuteReader();
return true;
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
return false;
}
finally
{
CN.Close();
}
اما با Error :
Procedure Or Function 'USP_ISP_Person' Expects Parameter '@ErrorMessage' ,Which was not Supplied