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]
[cc lang=”sql”]Select MAX(id) from tablom[/cc]
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]
[cc lang=”sql”]create proc sp_enbuyukid (@sonid int output)
as
begin
select @sonid=MAX(id) from tablom
end[/cc]
@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]
[cc lang=”c#”]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();[/cc]
Bu şekilde bir müdahale ile sql fonksiyonlarını benzer şekilde c# tarafında kullana bilirsiniz. Laubali anlatımdan dolayı özür borçluyum…
Yok hacı sen alnlat laubali olsun farketmez yeterki ögrenelim.
HAtta normal Anlatma hep Laubali Alnlat okuması daha guzel oluuyor