1 / 64

VALİDATİON

VALİDATİON.

maya
Download Presentation

VALİDATİON

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VALİDATİON

  2. Web Server kontrolünün önemli bir özelliğini ise bilgi giriş kontrolü yapan Validation kontrolleri oluşturur. Web form üzerindeki kontrollere istediğimiz bilgilerin; istediğimiz format ile girilmesi kontrolüne Validating denir. Bu yapı sayesinde oluşabilecek hatalar en aza indirgemiş oluruz.

  3. Asp.Net Validation Kontrolleri

  4. WEB FORM ÜZERİNE VALİDATİON KONTROL EKLENMESİ Validation kontrol eklenmesi ToolBox üzerinden sürükleyerek ; input kotrol yanına getirmek süretiyle yapılır. Daha sonra validation kontrol’ün Properties penceresinden kontrol edeceği Input Kontrol’ün ID’si seçilir. Bir input Kontrol’e birden çok validation kontrol atanabilir Type ve EnableClientScript özellikleri özel durum taşır. Type: Veri tipi validating işlemine tabi tutulacak ise ControlToValidate’den kontrol seçilince; veri tipi Properties kısmındaki Type bölümünden seçtiğimiz veri tipine göre, otomatik olarak kontrol edilir. Özel bir tanımlamaya ihtiyaç yoktur. EnableClientScript: EnableClientScript özelliği True olursa Client-Side validation çalışır. Varsayılan olarak True özelliğindedir. ASP.NET ; client-Side validation’ı Jscript ile Server-Side validation’ı C# veya Vb içinde oluşturur.

  5. VALIDATION GENEL ÖZELLİKLER DISPLAY: eğer birden fazla validation kontrol eklenecekse; bu Display seçeneğinin Dynamic olması gerekir. Validator’ın bu özelliği sayesinde; yanyana eklenmiş validator’ların hemen input kontrol’ün yanında çıkması sağlanır. Statik olursa; nerede koymuş isek, orada çıkar. Default olarak Display özelliği Static’tir. Aynı kontrol içinde birden fazla validator kullanıldığı zaman, Dynamic özelliğine çevirmeyi unutmayınız. None kullanılırsa error mesajı için blok koyar.

  6. Error Message: İki şekilde çıkartılır. Birincisi; Validator’un ErrorMessage kısmına, ikincisi de Text kısmına yazarak. ErrorMessage kısmına yazılmış bir mesajın hata durumunda görünmesini istiyorsak; Text kısmını boş bırakmamamız gerekir. Her ikisinde de yazı varsa; text kısmına yazdığımız hata durumunda görüntülenecektir. ErrorMessage ayrıca ValidationSummary validator’ı kullandığımızda gereklidir. Orada bu mesaj görüntülenir. Onun için biz, normal mesajları Text kısmına yazalım.

  7. REQUIREDFIELDVALİDATOR İki amaçla kullanılır. Birincisi; bu alanın boş geçilmesini engeller. Bunun için ControlToValidate kısmından Input kontrol seçilir ve ErrorMessage kısmına veya Text kısmına boş bırakıldığı zaman; hangi mesajın çıkması isteniyorsa o yazılır. Diğer kullanım amacı ise; herhangi bir değerin girilmesini engellemektir. Bu kullanım için InitialValue kısmına girilmesi istenmeyen değer yazılır. Eğer bu değer girilirse; hata mesajı karşımıza çıkar. Bu durumunda boş olup- olmadığı kontrol edilmez.

  8. RANGEVALIDATOR Belirlenen bir aralıkta değer girilmesini kontrol eder. Örneğin; bir tarih veya sayı aralığı ile veri girişini sınırlamak isterseniz, tercih edeceğiniz bir yöntemdir. Özellikleri : MinumumValue: Belirlenen aralıkta başlangıç değeri bu alana yazılır. MaximumValue: Belirlenen aralıktaki biitiş değeri bu alana yazılır. Type: Kullanılacak aralık için veri tipi seçilir. Eğer iki tarih arası ile bilgi girişini sınırlamak istiyorsanız date veri tipi seçmeniz gerekir.

  9. REGULAREXPRESSİONVALIDATOR veri girişinde belli biçimler kullanılmasını sağlar. Örneğin e-mail adresinde kullanılan @ ve nokta işaretinin kontrolünü yapmak, bu validator’ın görevidir. ValidationExpression kısmından uygulanacak format seçilir. Burada e-mail, web sitesi, telefon numarası ve posta kodu gibi hazır kalıplar vardır. Ayrıca sizin tanımlayacağımız özel formatlar için Custom seçilir.

  10. ÖRNEKLER

  11. COMPAREVALIDATOR Değer kıyaslaması için kullanılır. Input kontrolü içindeki değeri kıyaslar. Bunun için ControlToCompare kısmından hangi Input kontrolü ile kıyaslanacağı seçilir ve iki input kontrol içinde aynı değer olmaması durumunda hata mesajı çıkar. ValueToCompare içine girilen değere bakar. Eğer bu değer; input kontrol’e girilmez ise hata mesajı verir. Bu tür özel değerler için Type kısmından veri tipi veya Operator kısmından kullanılacak kıyaslama değeri seçilebilir.

  12. CUSTOMVALIDATOR Kendimize özel validator oluşturmak için kullanırız.

  13. protected void Page_Load(object sender, EventArgs e) { } protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) { int i = Convert.ToInt16(args.Value); if (i % 2 == 0) { args.IsValid = true; } else { args.IsValid = false; } } Bu kodlarda kontrole girdiğimiz değeri; args.Value değeri yakalıyor. Bu değeri bir değişkene aktararak, gerekli sorgulamayı yapıyor. Hata mesajı çıkmasını istediğimiz durumda args.IsValid değerini false, eğer bilgi doğru ise o zaman args.IsValid değerini True Yapmamamız gerekiyor.

  14. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="customvalidator.aspx.cs" Inherits="customvalidator" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script language="jscript"> function bekcom(kaynak,gelen) { alert ("Ben client üzerinde çalışıyorum "); var i = gelen.Value; if (i%2==0) { gelen.IsValid=true; } else { gelen.IsValid=false; } } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction="bekcom" ControlToValidate="TextBox1" ErrorMessage="CustomValidator" OnServerValidate="CustomValidator1_ServerValidate">Çift sayı girmelisiniz.</asp:CustomValidator><br /> <asp:Button ID="Button1" runat="server" Text="Yolla" /> </div> </form> </body> </html>

  15. VALIDATESUMMARY Sayfanın doğru olup olmadığını tespit eden özellik Page.IsValid dir. Eğer bu değer False Olarak dönerse, tüm validation kontroller hatalarını; ValidationSummary havuzuna yollar. ValidationSummary; tüm hataların listesini verir. Kontrollerin ErrorMessage kısmına başlık koymak istersek; ValidationSummary kontrolünün özellikler kısmından HeaderText kısmına gereken başlık bilgisini yazmamız gerekir. ValidationSummary kullanılan sayfalarda, genellikle kontrollerin Text özelliğne * işareti konulur.

  16. VERİTABANI

  17. DATAREADER İLE ACCESS VERİ TABANINA BAĞLANTI Yeni bir Web sitesi oluşturduğumuzda, otomatik olarak sitenin içinde App_Data isimli bir klasör oluşur. Bu klasör ASP.NET 2.0 yeniliklerinden biridir ve veri kaynaklarının depolanması amacı ile kullanılır. Eğer daha önce hazırlanmış bir veri tabanı varsa; App_Data klasörü üzerinde Fare’nin sağ tuşuna basarak, Add Existing Item seçeneğine tıklamamız gerekir. Buradan veri tabanımızı seçip, klasör altına ekletebiliriz.

  18. using System.Web.UI.HtmlControls; using System.Data.OleDb; public partial class datareader : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { OleDbConnection c = new OleDbConnection(); //Connection nesnesi tanımlanır c.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" + "data source=" + Server.MapPath("./App_Data/prestigeturk.mdb"); //Connection nesnesinin ConnectionString zelliği ile kullanılacak provider ve veri tabanı'nın yolu belirlenir. c.Open(); //Connection nesnesi Open meyhodu ile aktif hale getirlir. OleDbCommand cmd = new OleDbCommand(); //Command nesnesi tanımlanır; cmd.Connection = c; //Command Nesnesi kullanılarak; Connection nesnesi ile Connection Methodu ilişkenlendiriliyor.

  19. cmd.CommandText = "select * from kitap"; //cOmmand nesnesinin CommandText methodu ile SQL komutları uygulanarak, veritabanı içindeki istenilen tablodan; istenilen kayıtlar seçilir. OleDbDataReader dr; //DataReader nesnesi tanımlanır.Bu nesne; bilgileri tutacaktır. Eğer birden fazla kayıdı veri tabanından çekeceksek, bunları depolamak için DataReader nesnesine ihtiyaç vardır. Bunu bir diziye benzetebiliriz. yalnız bir kez taranabilir. İşi bitince kapatılmalıdır. Eğer kayıt ekleyeceksek, değiştiriceksek veya sileceksek o zaman bu nesneye gerek yoktur. dr = cmd.ExecuteReader(); //Command nesnesinin ExecuteRedaer mthodu ile tüm veriler DataReader nesnesine yüklenir. Ekleme, Silme ve Değişiklik için ExecuteNonQuery kullanılır. // Daha sonra bir döngü ile DataReader nesnesinde bulunan bilgiler; DataReader nesnesinin Read methodu ile istenilen ortama aktarılır. Bu aktarma işlemi yapılırken, veri tabanındaki herbir başlık bir numaraya sahiptir. İlk başlık 0 numarasını alır ve ondan sonraki başlıklar birer birer artarak devam eder. while (dr.Read()) { Response.Write(dr[1].ToString() + "--- " + dr[2].ToString() + "YTL<br>"); } dr.Close(); c.Close(); //Son olarak hem DatarReader nesnesini, hem de Connenction nesnesini Close methodu ile kapatırız. } }

  20. using System.Data.OleDb; using System.Web.Configuration; public partial class veriekleme : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { string baglantimetni = "Provider=Microsoft.Jet.Oledb.4.0;" + "data source=" + Server.MapPath("./App_Data/prestigeturk.mdb"); OleDbConnection bagla = new OleDbConnection(baglantimetni); bagla.Open(); OleDbCommand cmd = new OleDbCommand("select * from kitap", bagla); OleDbDataReader dr; dr = cmd.ExecuteReader(); while (dr.Read()) { ListBox1.Items.Add(dr[1].ToString() + "-->" + dr["fiyat"].ToString() + "YTL"); } dr.Close(); bagla.Close(); } }

  21. protected void Button2_Click(object sender, EventArgs e) { string baglantimetni = "Provider=Microsoft.Jet.Oledb.4.0;" + "data source=" + Server.MapPath("./App_Data/prestigeturk.mdb"); OleDbConnection bagla = new OleDbConnection(baglantimetni); bagla.Open(); OleDbCommand cmd = new OleDbCommand(); int k = Convert.ToInt16(TextBox1.Text); string a = TextBox2.Text; decimal f = Convert.ToDecimal(TextBox3.Text); DateTime b = Convert.ToDateTime(TextBox4.Text); string y = TextBox5.Text; int s = Convert.ToInt32(TextBox6.Text); int st = 0; if (CheckBox1.Checked == true) { st = 1; } cmd.Connection = bagla; cmd.CommandText = string.Format("Insert into " + "kitap(kitapno,ad,fiyat,tarih,yayinevi,sayfa,stokdurumu)" + " values({0},'{1}','{2}','{3}','{4}',{5},{6})", k, a, f, b, y, s, st); int z = cmd.ExecuteNonQuery(); if (z > 0) { Label1.Text = "Kaydedildi"; } }

  22. DATAADAPTER İLE ACCESS VERİ TABANINA BAĞLANTI DataAdapter objesi: Bir veri kaynağı ile Dataset arasında Link oluşturur. Dataset içinde bulunan DataTable Objesine uygun verileri yerleştirmek içinde kullanılabilir. Bir Command objesi Connection objesi içinde oluşturulur ve Command objesi ile DataAdapter objesi ilişkilendirilir.

  23. using System.Data.OleDb; public partial class dataadepter : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { OleDbConnection c = new OleDbConnection(); //Connection nesnesi tanımlanır c.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" + "data source=" + Server.MapPath("./App_Data/prestigeturk.mdb"); //Connection nesnesinin ConnectionString zelliği ile kullanılacak provider ve veri tabanı'nın yolu belirlenir. c.Open(); //Connection nesnesi Open meyhodu ile aktif hale getirlir. OleDbCommand cmd = new OleDbCommand(); //Command nesnesi tanımlanır; cmd.Connection = c; //Command Nesnesi kullanılarak; Connection nesnesi ile Connection Methodu ilişkenlendiriliyor. cmd.CommandText = "select * from kitap"; //cOmmand nesnesinin CommandText methodu ile SQL komutları uygulanarak, veritabanı içindeki istenilen tablodan; istenilen kayıtlar seçilir. }

  24. OleDbDataAdapter dr = new OleDbDataAdapter(); //Adapter nesnesi tanımlanır. dr.SelectCommand = cmd; // Adapter nesnesinin SelectCommand methodu ile Command nesnnesi ilşkilendirilir. DataSet ds = new DataSet(); //Dataset tanımlanır dr.Fill(ds, "kitap"); //Dataset nesnesi içinde bir tablo tanımlanarak, bu tablo içine CommandText ile seçilen bilgiler, Adapter nesnesinin filll methodu ile doldurulur GridView1.DataSource = ds; GridView1.DataBind(); //bir kontrol kullanarak Dataset içinde belirtilen bilgiler bu kontrole aktarılır. Bunun için Kontrolün DataSource methodu kullanılır ve Son bağlantıyı yapmak içinde kontrolün Databind methodundan yararlanılır. c.Close(); //Son olarak Connection nesnesinin Close Methodu ile Kapatabiliriz. //NOT: Bu yöntemde Open ve Close Metodları Kullanılmasada Olur. }

  25. VERİ KAYNAĞI BİLEŞENLERİ AcccesDataSource : Microsoft Access veri kaynaklarına erişim içim kullanılır. DataSetDatasource : Bir DataSet nesnesinin XML uyumlu hali ile çalışır. ObjectDataSource : Özel .NET nesneleri için kullanılır. SqlDataSource : Sql verisi içeren herhangi bir ADO.NET veri kaynağına erişim için kullanılır. OLEB ve ODBC yapılarını da içerir. DataSourceView : Verilerin durumunu görmek ve üzerinde özel işlemşer yapmak için kullanılır. Ayrıca SELECT, INSERT, DELETE, UPDATE desteklediği methodlardır.

  26. ACCESSDATASOURCE Access veritabanına bağlanmak için kullanılabilir Data Source kontrolüdür. Microsoft.Jet.OLEDB Provider’ını kullanarak veri kaynağına bağlanır DataFile özelliği ile .mdb dosyalarının ismi verilir. Varsayılan olarak Read-Only mode ile açar. İki farklı veri kaynağı modunu destekler. Bunlar • DataSet • DataReader Dataset kullanılarak bilgiler hafızaya alınır, ardından sıralama ve filtreleme işlemleri yapılabilir.

  27. Ayrıca INSERT, UPDATE, DELETE gibi SQL komutlarına da destek verir. Böylelikle kayıt ekleme, silme ve değiştirme işlemleri; veri kaynağı üzerinde gerçekleştirilir. Yalnız bu işlemlerin yapılabilmesi için; veri tabanı dosyası üzerinde write hakkının olması gerekir.

  28. GRAFİKSEL OLARAK VERİ KAYNAĞI İLE İLİŞKİ KURMAK İÇİN Web sayfası üzerine ToolBOx’ın Data kısmından AccesDataSource kontrolü getirildikten sonra, sağ üst köşedeki okçuğa tıklandığında, şekildeki görüldüğü gibi AccessDataSourceTasks bölümü açılır. Buradan Configure Data Source … linkine tıklanır.

  29. Gelen Choose a Database iletişim kutusundan Browse butonuna Tıklanarak; veri kaynağı seçilip, OK butonuna basılır. Ardından Next Butonu kullanılarak bir sonraki adıma geçilir.

  30. Configure the select Statement iletişim kutusundan uygulanacak komut belirlenir.

  31. Standart Kayıt getirme işlemi yapılacaksa Specifycolumsfrom a tableorview işaretlenir. Ardından bu veri tabanı içinde bulunan tablo veya view ismi Name kısmından seçilir. Colums bölümünde ise; görüntülenecek sütınlar isteğe bağlı olarak işaretlenebilir. Eğer tüm sütunların listelenmesi istenirse o zaman ilk kutucuk olan * işaretlenir. Aynı satırlardan sadece aynı olanların görünmesini isterseniz; Returnonlyuniquerows kutucuğunun doldurulması gerekir. Eğer bir koşul uygulanacak ise WHERE butonuna tıklanarak, hangi sütun veya Sütunlara göre koşul verilecekse işlemler yapılarak Add butonuna basılır. Column kısmından sütün belirlenir, Operator kısmından kıyaslama işareti seçilir. Source kısmından kaynak belirlenir. Value kısmından ise kullanılacak kriter yazılır.

More Related