Sql fonksiyonlarını C# tarafında kullanma

Beynimin uyuşmasına rağmen, basit bir konuyu sabahın 01:00 sularında yazıp paylaşmak istedim. Anlatmak istediklerimi anlamaya çalışın lütfen. Senaryo şöyle gelişti; veritabanın da bulunan tablodaki id’nin en büyük değerini görsel yani ADO.NET ile C# tarafında göstermek istedim. Veritanında tablodaki en büyük sayıyı, değeri bulabilmek için MAX fonksiyonu kullandım ama olmadı. Şöyle ki;

[stextbox id=”info”]Sql herhangi bir tablodaki kolonun en büyük değeri bulma[/stextbox]

1
SELECT MAX(id) FROM tablom

Bu sorgu ile tablom tablosunda id kolonunda en büyük id değerini alırız. İşte bu değeri C# tarafında gösterebilmek için SqlCommand cmd = new SqlCommand(“Select MAX(id) from tablom”) deyip lak diye yerleştiremeyiz, çünkü çalışmaz, neden çalışmadığının hikayesine şimdi giremeyeceğim. Bu sorgu sonucunu C# tarafında alabilmek için Output parametreli Stored Procedure ihtiyacımız olacaktır. Şöyle bir procedure oluşturarak ;

[stextbox id=”info”]Output parametreli Stored Procedure oluşturma[/stextbox]

1
2
3
4
5
CREATE proc sp_enbuyukid (@sonid INT output)
AS
BEGIN
SELECT @sonid=MAX(id) FROM tablom
END

@sonid geri gelen parametre ile C# tarafında procedure sonucunu gösterebiliriz. Şimdi siz bunun C# tarafında nasıl gösterilir diye soracak olursanız, formunaza veya web projesi sayfanıza bir Label koyup Page_Load veya Form_Load kısmana dalarak göstere bilirim;

[stextbox id=”info”]Output parametreli Stored Procedure’ü C# tarafında bağlama[/stextbox]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SqlConnection sql = new SqlConnection("server=.; database=veritabanim; trusted_connection=true;");

SqlCommand cmd = new SqlCommand();
cmd.Connection = sql;

cmd.CommandText = "sp_enbuyukid";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@sonid", SqlDbType.Int);
cmd.Parameters["@sonid"].Direction = ParameterDirection.Output;

sql.Open();
cmd.ExecuteNonQuery();

try
{
Label1.Text = cmd2.Parameters["@sonid"].Value.ToString();

}
catch (Exception)
{

Label1.Text = "Hata!!!";
}

sql.Close();

Bu şekilde bir müdahale ile sql fonksiyonlarını benzer şekilde c# tarafında kullana bilirsiniz. Laubali anlatımdan dolayı özür borçluyum…

“Sql fonksiyonlarını C# tarafında kullanma” için bir cevap

  1. Yok hacı sen alnlat laubali olsun farketmez yeterki ögrenelim.
    HAtta normal Anlatma hep Laubali Alnlat okuması daha guzel oluuyor

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir