Asp.Nette bazı durumlarda datarow koleksiyonu döndüren DataRowCollection sınıfını kullanmamız gerekebilir.
DataRowCollection birden çok datrow döndürebileceği için yine birden çok kayıt getiren sorgularımızın kullanımında oldukça işe yaramaktadır.
Bunun dışında DataRowCollection ın SqlDataReader dan farklı kendine has bir çok özellikleri vardır. Mesela SqlDataReader ile çektiğimiz kayıtların
kaç tane sonuç döndürdünü bilemezken DataRowCollection'ın Count özelliğini kullanarak sorgumuzun kaç kayıt döndürdüğünü öğrenebiliriz.
Aşağıdaki method iki opsiyona sahiptir. Sql sorgusunu direkt string olarak yazabileceğimiz gibi daha önce oluşturduğumuz stored procedur ü de kullanabiliriz.
public SqlConnection Connection
{
//Burada webconfigde tanımladığımız sql server connection ının ismini veriyoruz. Eğer webconfigde bir
// sql server connection ı tanımlamamışsanız doğrudan sql connection stringinizi burda yazabilirsiniz.
get { return new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString); }
}
//
public DataRowCollection DRCollectionDondur(string Query)
{
SqlConnection _con = Connection;
SqlCommand _cmd = new SqlCommand(Query, _con);
SqlDataAdapter _da = new SqlDataAdapter(_cmd);
DataSet _ds = new DataSet();
_con.Open();
_da.Fill(_ds);
_con.Close();
return _ds.Tables[0].Rows;
}
public DataRowCollection DRCollectionDondur(SqlCommand Command)
{
SqlConnection _con = Connection;
Command.Connection = _con;
SqlDataAdapter _da = new SqlDataAdapter(Command);
DataSet _ds = new DataSet();
_con.Open();
_da.Fill(_ds);
_con.Close();
return _ds.Tables[0].Rows;
}
kullanımı şu şekilde olacaktır. Mesela sitemize giriş yapmak isteyen üyenin bilgilerini doğru girip girmediğini kontrol edelim.
DataRowCollection myDataRowCollect = DRCollectionDondur("select userEmail,UserPassword from Users where userEmail='"+txtUserName.Text.Replace("'","''")+"' and UserPassword='"+txtUserPass.Text.Replace("'","''")+"'");
//Bilgiler doğru girilmemişse DataRowCollection'ın Countu sıfır değerini döndürecektir.
if(DRCollectionDondur.Count==0)
Reponse.Write("<script>alert('Email Adresi veya Parolayı Yanlış Girdiniz');</script>");
else if(DRCollectionDondur.Count==1)
{
Session["isUser"]=true;
Reponse.Write("<script>alert(' Giriş Başarılı. Hoşgeldiniz');</script>");
}
else //kullanıcı email adresi unique değer olması gerekiği için eğer birden çok kayıt dönerse database de bir karışıklık oluşmuştur. Düzeltilmesi gerekir.
Reponse.Write("<script>alert(' Hata Oluştu, Lütfen Sorunu Bize Bildirin');</script>");
3 Kasım 2009 Salı
ASP.NET'te C# ile DataRowCollection Döndüren Fonksiyon
Etiketler:
ASP.NET,
c#,
DataRow,
DataRowCollection,
DataTable Rows
Kaydol:
Kayıt Yorumları (Atom)

Hiç yorum yok:
Yorum Gönder