BİLGİ SAYAMIYORUM beta

Asp.Net (C#) de veritabanı etkileşimleri için kullanılan Execute* metodları

0

C# asp.net ile proje geliştirirken dinamik projelerde kullanacağınız veritabanı işlemlerinde bağlantıyı sağladıktan ve gerekli değerleri prosedüre yolladıktan sonra işlemi çalıştırmak için "execute" metodlarına ihtiyacınız vardır. Bu metodları sınıflarda da tanımlayabilirsiniz, o işlemin yapıldığı sayfalarda tek tek de belirtebilirsiniz. Bu 4 metodu da sıkça kullanabileceğiniz için hepsinin önemi farklıdır.

Bu çalıştırma metodlarının kullandığı yerlere göre tek tek önemleri büyüktür. 

 

Önemli Not

SqlConnection dbConn = new SqlConnection(ConfigurationManager.
ConnectionStrings["baglantiSatiri"].ConnectionString);
dbConn.Open();
Aşağıdaki örnekleri incelerken şunları gözden kaçırmayın tüm işlemler veritabanı bağlantısı aralığında gerçekleşmelidir.
dbConn.Close();
 
Asp.Net (C#) de Ms Sql veritabanı bağlantısı nasıl kurulur, nasıl çağırılır? | Bilgi Sayamıyorum
 
Tüm bu işlemleri yapabilmek için kod sayfalarınızda çağırılması gereken kütüphaneler (fazla olmasında şimdilik bir sorun yok):
  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Xml;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Data.SqlClient;
  9. using System.Collections.Generic;
  1. using System.Web.UI;
  2. using System.Web.UI.HtmlControls;
  3. using System.Web.UI.WebControls;
  4. using System.Web.UI.WebControls.WebParts;

 

ExecuteNonQuery

Veritabanı etkileşimli işlem yapılırken sadece veri göndermek için kullanılır, yani işlemin sonunda bir sonuç dönmez. Örnek olarak: Veritabanındaki (database) bir tabloya yeni bir satır eklerken kullanılabilinir. Tabi bu satırın eklenmesiyle çıkan bir sayı, sonuç vs kullanılmıyorsa.

Mesela "addNewUser" adındaki bir prosedür (sp) ile kullanıcılar (users) tablosuna yeni bir kullanıcı ekleyelim. 

SqlCommand sqlComm = new SqlCommand();
sqlComm.Connection = dbConn;
 
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.CommandText = "addNewUser";
 
sqlComm.ExecuteNonQuery();
 

ExecuteScalar

Veritabanından (database) veri çekerken geri dönüş olarak tek satır bekliyorsak, bu metodu kullanıyoruz. Gönderdiğimiz komut ile birden fazla satır gelebilecek olduğunda bile "ExecuteScalar" kullandığımızda her zaman sonucun ilk satırı elimize ulaşacaktır.
 
Mesela "checkTag" prosedürü ile veritabanında ismini verdiğimiz bir etiketin olup olmadığını inceleyelim ve sonuç olarak da o etiketin "ID" sini alalım.
SqlCommand sqlComm= new SqlCommand();
sqlComm.Connection = dbConn;
 
sqlComm.CommandType = CommandType.StoredProcedure; ;
sqlComm.CommandText = "checkTag";
 
sqlComm.Parameters.Add("@tag", SqlDbType.NVarChar, 50, "tag");
sqlComm.Parameters["@tag"].Value = "etiket";
 
tagID = sqlComm.ExecuteScalar().ToString();
  • dbConn: daha önce tanımladığımız veritabanı bağlantısı adı.
  • sqlComm: en başta tanımladığımız sql komutu ismi.
  • checkTag: sql komutu için kullandığımız prosedür.
  • "@tag": bu prosedürün doldurmamız gereken parametresi, ona "etiket" kelimisini yolluyoruz.
  • CommandType kısmını da prosedür kullandığımız için CommandType.StoredProcedure yapıyoruz.
  • İşlem sonunda tek satırlık sonucu, string'e çevirip "tagID" ye atıyoruz.
 

ExecuteExecuteReader

Veritabanından (database) veri çekerken geri dönüş olarak bir çok satır bekliyorsak bu metodu kullanıyoruz. Kullanılan çoğu veritabanı etkileşimlerinde göreceğiniz üzere en çok ihtiyaç duyacağınız metodlardandır. 
 
Mesela "getCategories" prosedürü ile kategoriler tablosunun tamamını çekelim. Daha sonra o verileri bir "SqlDataReader" a atıp, bir dropdown (açılır liste) kutusunu o verilerle dolduralım.
 
Kod sayfası:
SqlCommand sqlComm = new SqlCommand();
sqlComm.Connection = dbConn;
 
sqlComm.CommandType = CommandType.StoredProcedure; ;
sqlComm.CommandText = "getCategories";
 
SqlDataReader rd = sqlComm.ExecuteReader();
 
ddlCategories.DataSource = rd;
ddlCategories.DataBind();
 
rd.Close();
 
Arayüz Sayfası:
<asp:DropDownList ID="ddlCategories" runat="server" DataTextField="name" DataValueField="ID"></asp:DropDownList>
  • dbConn: daha önce tanımladığımız veritabanı bağlantısı adı.
  • sqlComm: en başta tanımladığımız sql komutu ismi.
  • getCategories: sql komutu için kullandığımız prosedür.
  • rd: verileri koyduğumuz sqldatareader öğesi.
  • ddlCategories: arayüzde dropdown (açılır liste) olarak duran asp.net html input öğesi.
  • İşlem sonunda çektiğimiz verileri "ddlCategories" öğesine doldurarak kullanıcıya gösteriyoruz.
 

ExecuteXmlReader

Veritabanından (database) veri çekerken geri dönüş olarak bir çok satır bekliyorsak bu metodu kullanıyoruz. "ExecuteReader" dan farklı olarak verileri xml olarak çekiyoruz. Bu yüzden normalde "SqlDataReader" a attığımız verileri bunda "XmlReader" öğesine atıyoruz.
XmlReader xr = sqlComm.ExecuteXmlReader();

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER