ASP.NET ile MySQL veri tabanına bağlanma ve veri çekme Repeater da gösterme

makale.baslik

Bu yazı ile ASP.NET ile MySQL veri tabanına basit bir yapıda bağlanıp veri çekmeyi göreceksiniz.

Öncelikle bu işi yapmak için kullanacağınız birçok yöntem olduğunu belirteyim. Ben bu işi kolaylaştırmak için kendim bir sınıf (class) yazdım. Bağlantıyı da bu sınıf üzerinden gerçekleştireceğiz.

Öncelikle bu sınıftan bahsedeyim, sınıfımızın adı Baglan.cs ve bu sınıftaki metotlar sayesinde seçme, düzenleme, silme ve ekleme sorgularını kolaylıkla gerçekleştirebilirsiniz. 

 ASP.NET te sınıf kullanmak istiyorsanız sınıflarınızı App_Code klasörünün içine koymanız gerekiyor. Baglan.cs dosyasını bu klasör altına kaydetmeyi unutmayın.

Bu uygulamamızda sadece Baglan.Sec();  metodunu kullanıp verileri ekranda göstereceğiz.

Baglan.cs 

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

/// <summary>
/// Summary description for Baglan
/// </summary>
public class Baglan
{
    public static SqlDataSource Baglanti()
    {
        string veritabani = "server=localhost;user id=root;pasword=;database=okul; charset=utf8"; //veri tabanı adı yazılacak
        SqlDataSource sds = new SqlDataSource();
        sds.ConnectionString = veritabani;
        sds.ProviderName = "MySql.Data.MySqlClient";
        return sds;
    }
    public static SqlDataSource Sec(string sorgu)
    {
        SqlDataSource sds = Baglanti();
        sds.SelectCommand = sorgu;
        return sds;
    }

    public static SqlDataSource Duzenle(string sorgu)
    {
        SqlDataSource sds = Baglanti();
        sds.UpdateCommand = sorgu;
        return sds;
    }

    public static SqlDataSource Sil(string sorgu)
    {
        SqlDataSource sds = Baglanti();
        sds.DeleteCommand = sorgu;
        return sds;
    }
    public static SqlDataSource Ekle(string sorgu)
    {
        SqlDataSource sds = Baglanti();
        sds.InsertCommand = sorgu;
        return sds;
    }

    public static int SatirSayisi(SqlDataSource sds)
    {
        DataTable tablo = Tablo(sds);
        return tablo.Rows.Count;
    }

    public static DataTable Tablo(SqlDataSource sds)
    {
        DataSourceSelectArguments args = new DataSourceSelectArguments();
        DataView view = (DataView)sds.Select(args);
        DataTable tablo = view.ToTable();
        return tablo;
    }

Bu sınıfı kullanırken veri tabanı bağlantı bilgileri Baglan.cs dosyasında veritabani değişkeninde düzenlenmelidir.

string veritabani = "server=localhost;user id=root;pasword=;database=okul; charset=utf8"; 

user id= Kullanıcı adı

password= Parola

database= Bağlanacak veri tabanı adı

charset= karakter seti Türkçe karakterlerde sorun yaşamamak için utf8 kullanıyoruz.

Lokalde çalışıyorsanız veri tabanı bağlantı bilgileri verdiğim gibi olacak tek değişecek kısım veri tabanı adı olacak. 

Veri tabanımızın adı okul ve içinde tek bir tablo oluşturdum ogrenci adında, içindeki alanlarda aşağıdaki gibi olacak

asp net veri çekme

Lokalde çalışırken MySQL serverı da kendiniz kurmuş olmalısınız. Kurmayanlar için Wamp veya Xampp uygulamaları sizin yerinize MySQL’i kuracaktır. Visual Studio ile MySQL serverı konuşturmak içinde MySQL Connector/Net’i bilgisayarınıza kurmanız gerekmektedir. https://dev.mysql.com/downloads/connector/net/6.10.html adresinden kullandığınız framework’e ve Visual Studio sürümüne uygun connector indirip kurabilirsiniz.

Şimdi basit bir şekilde veri tabanımıza bağlanıp Repeater nesnesi kullanarak verilerimizi gösterelim.

Bunu için Default.aspx.cs sayfasında Page_Load metoduna veri çekecek kodları ekliyoruz. Açıklamalar açıklama satırlarında.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlDataSource baglanti = Baglan.Sec("select * from ogrenci");
        // baglanti nesnesi oluşturup, Sec metoduna sorgumuzu gönderiyoruz
        rptOgrenci.DataSource = baglanti; // sorgu sonucunu repeatera bağlıyoruz
        rptOgrenci.DataBind();  // sonuçları repeatera göstertiyoruz

    }
}

Verileri göstermek içinde Default.aspx sayfasına basit bir Repeater ekleyerek verilerinizi gösterebilirsiniz. Repeater kullanımı çok basittir. Visual Studio’da Toolbox‘da Data sekmesi altında bulabilirsiniz. Kullanırken de şablonu şu şekildedir.

            <asp:Repeater ID="Repeater1" runat="server">
                <ItemTemplate>
                    <%# Eval("alanAdi") %>
                </ItemTemplate>
            </asp:Repeater>

Burada dikkat edeceğiniz durum   <%# Eval("adsoyad") %> komutunda veri tabanındaki alan adını (adsoyad) doğru yazmaktır.

Veriler estetik görünsün diye tablo içinde ve bootstrap kullanarak gösterdim.

Default.aspx sayfamızın kodlarıda aşağıdaki gibi;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Veritabanı bağlanma</title>
    <link href="css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <div class="col-md-3">
            <table class="table">
                <tr>
                    <th>No</th>
                    <th>Ad Soyad</th>
                </tr>

                <asp:Repeater ID="rptOgrenci" runat="server">
                    <ItemTemplate>
                        <tr>
                            <td><%# Eval("numara") %> </td>
                            <td><%# Eval("adsoyad") %>
                            </td>
                    </ItemTemplate>

                </asp:Repeater>
            </table>
        </div>
    </form>
</body>
</html>

Bu sayede artık veri tabanına bağlanıp verileri çekip ekranda gösterebileceksiniz.

Uygulama dosyaları ve veri tabanı dosyasını indirmek için: aspnetVericekme.rar

Paylaş:

Yorumlar

  1. Hocam başka bir şey ararken çıktı karşıma. Güzel anlatım olmuş teşekkürler :)

    1. Beğendiğine sevindim Neco :)

  2. .Net Hatası Veriyo Nasıl Çözebilirim.Teşekkür Ederim

    1.  Visual Studio ile MySQL serverı konuşturmak içinde MySQL Connector/Net’i bilgisayarınıza kurmanız gerekmektedir. https://dev.mysql.com/downloads/connector/net/6.10.html adresinden kullandığınız framework’e ve Visual Studio sürümüne uygun connector indirip kurabilirsiniz.

  3. Ziya

    Mysql connector kurulu olduğu halde aşağıdaki hatayı vermektedir. Nesne başvurusu bir nesnenin örneğine ayarlanmadı. Açıklama: Geçerli web isteği yürütülürken işlenmemiş özel durum oluştu. Lütfen hata ve kod içinde kaynaklandığı yer hakkında daha fazla bilgi almak için yığın izlemesini gözden geçirin. Özel Durum Ayrıntıları: System.NullReferenceException: Nesne başvurusu bir nesnenin örneğine ayarlanmadı. Kaynak Hatası: Satır 15: rptOgrenci.DataBind();

    1. Merhaba Connector/NET 6.9.6 yüklerseniz bir sorun yaşamazsınız.

  4. Silmeyi Nasıl Yapacağız :(