私は常にストアドプロシージャを使用しています。しかし、ストアド プロシージャ内でエラー ハンドラを使用したことはありません。エラーハンドラについて知りました。ストアド プロシージャで実行しようとしましたが、アプリケーションでエラー メッセージが表示されませんでした。私は以下のストアドプロシージャを提供しています
ALTER PROCEDURE [dbo].[E_AddDesignation]
@Designation nvarchar(100),
@Order int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @myRowCount int
SELECT DesignationID FROM Designation WHERE (DesignationName = @Designation)
SET @myRowCount=@@ROWCOUNT
IF(@myRowCount ! = 0)
BEGIN
RAISERROR('Already exists',5,1)
END
ELSE
BEGIN
insert into Designation(DesignationName,DesignationOrder) values (@Designation,@Order)
RAISERROR('Submitted Successfully',5,1)
END
SET NOCOUNT OFF;
END
ストアドプロシージャを呼び出して、以下のようなエラー メッセージを取得しようとしています。
Try
c.con.Open()
c.cm = New SqlCommand("E_AddDesignation", c.con)
c.cm.CommandType = CommandType.StoredProcedure
c.cm.Parameters.Add("@Designation", SqlDbType.NVarChar).Value = Designation
c.cm.Parameters.Add("@Order", SqlDbType.Int).Value = Order
c.cm.ExecuteNonQuery()
c.con.Close()
Catch ex As SqlException
Console.WriteLine(ex)
End Try
私はどこかで何か間違ったことをしました。間違いを見つけるのを手伝ってください。