Sql Server Görsel Ders etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Sql Server Görsel Ders etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

25 Şubat 2011 Cuma

Veritabanından Gelen Verilerin Excel Çıktısı Alındığında Türkçe Karakterlerin Görünmeme Sorunu

Kaynak
   Bir süre önce, veritabanından gelen bilgileri bir datalistte görüntüledikten sonra istendiğinde bu listenin excel çıktısının alınabilmesi gerekiyordu.
   Bunun için runtimeda datalisti bir form içine alıp bu formu render ederek saya çıktısı olarak aldım. Tabi sayfaya bir header ekleyerek çıktının attachement olarak verilmesini, yani, download edilebilir şeklinde olmasını sağladım.
   Fakat aldığım excel dosyalarında Türkçe karakterlerin yerine farklı karakterler görünüyordu. Verilerin de bolca türkçe karakter içerdiğini bildiğim için bunun giderilmesi gerekiordu. Tabiki ilk akla gelen sayfanın encoding bilgisini değiştirmek oldu.
Response.ContentEncoding = Encoding.UTF8;//bu deneme başarısız oldu. çok üzüldüm :(
   Birkaç deneme daha yaptıktan sonra aklıma Encoding classının GetEncoding metodu geldi. Bununla bir encoding vermeliydim diye düşündüm.
Response.ContentEncoding = Encoding.GetEncoding(1254);//sonuç başarılı :)
   Neden 1254 derseniz => http://tr.wikipedia.org/wiki/Windows-1254

20 Şubat 2011 Pazar

ASP.NET ile CheckBox'dan Seçilen Kayitlari Veritabanından Silme

Örnegin Hotmail ,gmail gibi sitelerde gelen kutusundan silmek istedigimiz maillerin yanindaki checkbox lari seçip sil butonuna basariz ve tek seferde tüm seçilen mailleri sileriz.
Bu uygulama veritabani olarak Access  kullanilacak ve senaryo geregi veritabaninda kayitli olan mailleri listeleyip istegimiz mailleri seçip silecegiz.
Il olarak veritabanindan verileri çekelim ve bir dataliste aktaralim .















Simdi de kodlari asagidaki gibi yazalim
(sayfamiza using System.Data.OleDb ve using System.Data name spacelerini  eklemyi unutmuyoruz tabi)

Default.aspx.cs


6 Şubat 2011 Pazar

DataGridView Veri Bağlama ve Veri Güncelleme, Düzenleme

DataGridView Veri Bağlama

İşlem Çok basit bir DataGridView Kontrolü atın formunuza..

Daha Sonra Grid'in SmartTag'ine basın tablonuzu bağlayın.. Veri bu şekilde Bağlandı..

ve
Form Load ta şöyle bir satır oluşur.. Edit Kısmında Kullanıcaz..
1)  this.ogretmenTableAdapter1.Fill(this.bilgeKolejiDataSet3.ogretmen);

DataGridView Veri Düzenleme

Mesela Öğretmen Tablonuz var diyelim ogretmenTableAdapter şeklinde bir adapter oluşturuyor.


  private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
1)'deki kodu kopyalayın ve sadece Fill Kısmını Update Yapın ve bunu Gridview'in CellEndEdit Event'inde yapıcaksınız.. Yani Editlemeden çıktığında anlamında..

            this.ogretmenTableAdapter1.Update(this.bilgeKolejiDataSet3.ogretmen);


        }

Çalıştırın.. ve bir değer değiştirin.. Veri tabanında da güncellendiğini göreceksiniz..


DataGridView Veri Silme

Olayımız seçili satırı sil şeklinde gerçekleşicek. forma bir buton atın ve Click'inde 

             //Bağntınızı kendinize göre düzenleyin..
      SqlConnection cnn = new SqlConnection("server=.;database=bilgeKoleji;Trusted_Connection=true;");

            SqlCommand cmd = new SqlCommand("delete from ogretmen where ogretmenId=@oid",cnn);
            
            //Bu satır Seçili satırdaki ogretmenId aldık... Üstte @oid diye tanımladığımız değişkene attık
            cmd.Parameters.AddWithValue("@oid", dataGridView1.CurrentRow.Cells[0].Value);

cnn.Open(); //Bağlantıyı açtık
            cmd.ExecuteNonQuery(); //Geriye değer dönmediği için NonQuery kullanıyoruz..
            cnn.Close(); //Bağlantıyı kapattık






1 Şubat 2011 Salı

ASP.NET ile Store Procedure Kullanımı

Kaynak: Heryonuyleasp

TSQL Deyimleriyle çalışan store prodecedure'ler ilk kez çalıştığında derlenir.. Bir daha derlenmezler..


Örnek Bir Procedure..

Create Procedure LastTenPerson

as

select top 10 ContactID, FirstName, LastName from Person.Contact
order by ContactID desc



Bu procedure contact tablosundan 10 adet veriyi Contact ID ye göre Büyükten Küçüğe Sıralar..





İlk olarak bir web projesi açalım;



Projemizi oluşturduktan sonra sayfamıza bir adet grid ekleyelim;

 Evet şimdi kaydımızı görüntüleyecek olan kodları yazalım ilk olarak System.Data ve System.Data.SqlClient namespacelerini sayfamıza ekleyelim…


using System.Data;
using System.Data.SqlClient;
// Daha sonra sayfamizda kullanacagimiz degiskenleri tanimlayalim;
SqlConnection Cnn;
SqlCommand Cmd;
SqlDataAdapter Da;
DataSet Ds;
//Simdi Kaydimizi listeleyecek olan voidi yazalim(Isterseniz function
//olarak yada class içerisinde kullanabilirsiniz).
private void GetLastTenPerson()
{
                 //DB Baglantisi

                 Cnn = new SqlConnection(
"Data Source=localhost; Initial
                 Catalog=AdventureWorks; trusted_connection=yes"
);
                 Cmd = new SqlCommand();
                 Cmd.CommandType = CommandType.StoredProcedure;//Command Tipi
                 Cmd.CommandText = "LastTenPerson";//SP Adi
                 Cmd.Connection = Cnn;//Commandin kullanacagi Connection
                 if (Cnn.State == ConnectionState.Closed) Cnn.Open();
                 Da = new SqlDataAdapter(Cmd);
                 Ds = new DataSet();
                 Da.Fill(Ds,"table");
                 GridView1.DataSource = Ds.Tables[0];
                 GridView1.DataBind();
}
//En son olarak bunu Formun Load’da çagiralim;
protected void Page_Load(object sender, EventArgs e)
{
   GetLastTenPerson();
}


Şimdi Projemizi çalıştıralım;

19 Ocak 2011 Çarşamba

Asp.net Query String Kullanımı

Asp.net Query String Kullanımı

Kaynak : www.webbilgileri.com

Asp.net Query String Kullanımı

  Bu makalemizde Asp.net uygulamalarında kullanılan Ouery string kodu açıklamaya çalışacağız.QueryString kodu makalegöster gibi sayfalarımızda kullanıdığımız bir koddur QueryString gelen değer ile veritabanından gelen değeri karşılaştırıp veritabanındaki verilerin detaylarına gitmemizi sağlar.
  Öncelikle makale adında bir veritabanımız olduğunu varsayalım. makale veritabanımızın alanları: makaleid , Baslik, yazar, makale
SQL veritabanı için:
makaleler.aspx.cs:

 protected void Page_Load(object sender, EventArgs e)
  {
    string bg = ConfigurationManager.ConnectionStrings["LocalSqlserver"].ConnectionString;
    SqlConnection baglanti = new SqlConnection(bg);
    SqlCommand komut = new SqlCommand("Select  * From makale", baglanti);
    DataTable veriTablosu = new DataTable();
    SqlDataAdapter veriAdaptoru = new SqlDataAdapter(komut);   
    baglanti.Open();
    veriAdaptoru.Fill(veriTablosu);
    SqlDataReader oku = komut.ExecuteReader();
    if (oku.Read())
    {
    DataList1.DataSource = veriTablosu;
    DataList1.DataBind();
    }
    baglanti.Close();
  }
  Bu şekilde datalist kontrolümüzü doldurduk ve
makaleler.aspx:
    <asp:DataList ID="DataList1" runat="server" DataKeyField="makaleid">
        <ItemTemplate>
           <table border="0">
           <tr><asp:HyperLink ID="HyperLink1" runat="server" Text ='<%# Eval("Baslik") %>' NavigateUrl ='<%# "~/makalegoster.aspx?Makaleid="+Eval("Makaleid")%>'>HyperLink</asp:HyperLink></td></tr>                 
           </table>    
         </ItemTemplate>
         <AlternatingItemStyle BackColor="Gainsboro" />
     </asp:DataList>

 Şeklinde datalistimize eklediğimiz hyperlinle makalegoster.aspx sayfamıza makaleid'sine gönderiyoruz.Makalegöster sayfamızdaki kod:

makalegoster.aspx.cs:

 protected void Page_Load(object sender, EventArgs e)
  {
    string bg = ConfigurationManager.ConnectionStrings["LocalSqlserver"].ConnectionString;
    SqlConnection baglanti = new SqlConnection(bg);
    SqlCommand komut = new SqlCommand("Select * From makale where makaleid= @ Makaleid", baglanti);
    komut.Parameters.AddWithValue("@Makaleid", Convert.ToInt32(Request.QueryString["makaleid"]));
    komut.Connection = baglanti;
    SqlDataAdapter veriAdaptoru = new SqlDataAdapter(komut);
    DataTable veriTablosu = new DataTable();
    baglanti.Open();
    veriAdaptoru.Fill(veriTablosu);
    SqlDataReader oku = komut.ExecuteReader();
     {
        if (oku.Read())
   {
      Response.Write("<br/>"+oku["makale"]);
   }
     }
  }
 Görüldüğü gibi where ile query string'ten gelen değeri veritabanında makaleid değeri ile karşılaştırdık ve o makaleid'ye ait detayları sayfamıza yazdırdı.
 web.config dosyasındaki connectionString bloğunu kendinize göre ayarlayınız.
<connectionStrings>
     
<add name="LocalSqlserver"
       connectionString="Data Source=.\SQLEXPRESS;Integrated Security=True; User Instance=True;AttachDBFilename=|DataDirectory|aspnetdb.mdf;" providerName="System.Data.SqlClient">
     
</add>
  </connectionStrings>


Access Veri tabanı için:
   App_Data içinde aspNetDb.mdb adında bir veri tabanımız olduğunu var sayalım.makale veritabanımızın alanları: makaleid , Baslik, yazar, makale
makaleler.aspx.cs:
 protected void Page_Load(object sender, EventArgs e)
  {
      
    OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data Source=" + Server.MapPath("~/App_Data\\ASPNetDB.mdb"));
    OleDbCommand komut = new OleDbCommand("select * From makale where makaleid = @ makaleid", baglanti);
    komut.Parameters.AddWithValue("@Makaleid", Convert.ToInt32(Request.QueryString["makaleid"]));
    DataSet Mydataset = new DataSet();
    OleDbDataAdapter MYdataAdap = new OleDbDataAdapter(komut);
    baglanti.Open();
    veriAdaptoru.Fill(veriTablosu);
    OleDbDataReader oku = komut.ExecuteReader();
    if (oku.Read())
    {
      DataList1.DataSource = veriTablosu;
      DataList1.DataBind();
    }
    baglanti.Close();
  }
  Bu şekilde datalist kontrolümüzü doldurduk ve
makaleler.aspx :
    <asp:DataList ID="DataList1" runat="server" DataKeyField="makaleid">
        <ItemTemplate>
           <table border="0">
           <tr><asp:HyperLink ID="HyperLink1" runat="server" Text ='<%# Eval("Baslik") %>' NavigateUrl ='<%# "~/makalegoster.aspx?Makaleid="+Eval("Makaleid")%>'>HyperLink</asp:HyperLink></td></tr>                 
           </table>    
         </ItemTemplate>
         <AlternatingItemStyle BackColor="Gainsboro" />
     </asp:DataList>

 Şeklinde datalistimize eklediğimiz hyperlinle makalegoster.aspx sayfamıza makaleid'sine gönderiyoruz.Makalegöster sayfamızdaki kod:
makalegoster.aspx.cs:
 protected void Page_Load(object sender, EventArgs e)
  {
  
    OleDbConnection baglanti = new OleDbConnection("provider=microsoft.jet.oledb.4.0; data source=" + Server.MapPath("~/App_Data/aspNetDb.mdb"));
    string strsql="Select * from makale where (makaleid = @ makaleid";
    OleDbCommand komut=new OleDbCommand(strsql,baglanti);
    komut.Parameters.AddWithValue("@makaleid",Convert.ToInt32(Request.QueryString["makaleid"]));
    komut.Connection=baglanti;
    baglanti.Open();
    OleDbDataReader oku=komut.ExecuteReader();
    {
        if(oku.Read())
        {
            Response.Write("<br/>"+oku["makale"]);
        }
    }
  }
  Görüldüğü gibi where ile query string'ten gelen değeri veritabanında makaleid değeri ile karşılaştırdık ve o makaleid'ye ait detayları sayfamıza yazdırdı.