En iyi yanıtlayıcılar
Sql Stored Procedure raiserror ile dönen hatayı datasette gösterme

Soru
-
Merhaba ,
csharp ta dataset kullanıyorum , stored procure de bir hata meydana geldiği zaman bunu kullanıcıya nasıl gösterebilirim.
Örneğin
if @Id is null
begin
if not exists (select Id from tbl_Id where Kisi = @KisiId )
begin
raiserror 70000 'Kişi Bulunamadı'
return
end
endbu mesajı kullanıcının karşısına çıkarmak istiyorum.
Yanıtlar
-
Ozaman procedure içinde bunları yapıp, hangi hatayı aldığını
C# tarafında try catch(SqlException exception) ile yakalayabilirsin
(PROCEDURE)
BEGIN TRY -- ... END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber ,ERROR_MESSAGE() AS ErrorMessage; END CATCH
- Düzenleyen trust me, i'm a geek (BilgeAdam) 16 Mart 2013 Cumartesi 22:34
- Yanıt Olarak İşaretleyen alicsharp 19 Mart 2013 Salı 08:00
Tüm Yanıtlar
-
Neden procedure den "kişi bulunamadı" hatası gösteriyorsun ki,
Stored procedure nü c# tarafında da çalıştırıp kişi bulunup yada bulunamadı yı da kontrol edebilirsin ? Eğer procedure 'den bir değer döndürmek istiyorsan onu da ancak c# tarafında ExecuteScalar() methodu ile elde edebilirsin. Bu method sana ilk kaydın ilk kolonundaki değeri döndürür.
Örnk :
SqlCommand cmd= ...
object result= cmd.ExecuteScalar();
Ama illa procedure 'den dışarıya değer fırlatmak istiyorsan ozaman da Output parameter kullanmalısın procedure içerisinde.
- Düzenleyen trust me, i'm a geek (BilgeAdam) 16 Mart 2013 Cumartesi 22:36
-
-
-
Ozaman procedure içinde bunları yapıp, hangi hatayı aldığını
C# tarafında try catch(SqlException exception) ile yakalayabilirsin
(PROCEDURE)
BEGIN TRY -- ... END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber ,ERROR_MESSAGE() AS ErrorMessage; END CATCH
- Düzenleyen trust me, i'm a geek (BilgeAdam) 16 Mart 2013 Cumartesi 22:34
- Yanıt Olarak İşaretleyen alicsharp 19 Mart 2013 Salı 08:00