Anasayfa / Yazılım / ASP.NET / ASP.NET Class Kullanarak Veritabanına Bağlanma

ASP.NET Class Kullanarak Veritabanına Bağlanma

Bu yazımda SQL Server ortamına bağlanmayı bir class olarak oluşturup yine ConfigurationManager sınıfından da yararlanarak anlatacağım. Örneğimde WEB formumda sadece repeater nesnem olacak. Northwnd veritabanına bağlanarak Employees tablosundan EmployeeID, LastName ve FirstName alanlarını SELECT sorgusu ile çekeceğim.

Öncelikle WEB Config dosyama bağlantı işlemimi sağlayacak olan ConnectionStringimi tanımlıyorum.







    
        
    
  
    
  

Daha sonra aspx web formumun design kısmına bir adet Repeater ekliyorum. Bunun kodsal görünümü şu şekilde :

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





    


    
EmployeeID : <%#Eval("EmployeeID") %>
LastName : <%#Eval("LastName") %>
FirstNane : <%#Eval("FirstName") %>

CodeBehind tarafında yazmış olduğum class ve veri çekme komutlarım mevcut bunlarda şu şekilde, açıklamaları kod bloğunda görebilirsiniz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

public partial class _Default : System.Web.UI.Page
{
    //Bağlantı Sınıfım
    public class DBIslem
    {
        //Veritabanı bağlantım
        public SqlConnection Baglanti()
        {
            //Bağlantımı ConfigurationManager ile web config dosyasından çekiyorum
            string ConnectionString = ConfigurationManager.ConnectionStrings["NorthWindBaglanti"].ConnectionString;
            SqlConnection conn = new SqlConnection(ConnectionString);
            conn.Open();
            return conn;
        }
    }
    //Sayfamın Page_load eventinde verilerimi gösteriyorum.
    protected void Page_Load(object sender, EventArgs e)
    {
        //oluşturduğum classtan yeni bir instance alıyorum.
        DBIslem baglan = new DBIslem();
        SqlConnection baglantiNesnesi = baglan.Baglanti();
        //SQL sorgu queryimi yazıyorum.
        SqlCommand comm = new SqlCommand("SELECT EmployeeID,LastName,FirstName FROM Employees",baglantiNesnesi);
        //SqlDataReader nesneni oluşturuyorum
        SqlDataReader reader;
        try
        {
            //Repeater kullanarak veriyi okuyorum.
            reader = comm.ExecuteReader();
            Repeater1.DataSource = reader;
            Repeater1.DataBind();
            reader.Close();
        }
        catch
        {
            //hata olursa
            Response.Write("Bir hata oluştu!");
        }
        finally
        {
            //bağlantımı kapatıyorum.
            baglantiNesnesi.Close();
        }
        
    }
   
}

6 yorum

  1. Merhaba öncelikle paylaştığınız bütün yazılarınız için herkes gibi bende teşekkür ederim..Ufak bir sorum olacaktı
    repeater içinde istediğim verileri nasıl gösterebilirim ? mesela yazılar adında ki tablo’da 10 tane veri olsun ben sadece benim seçtiğim atıyorum 1. ve 6. verilerin gözükmesini istiyorum bunu nasıl yapabilirim?

  2. İstediğiniz verileri gösterebilmek için SQL Query kısmında filtreleme yapabilirsiniz. Örneğin Yazılar tablosunda ID’si 1 ve 6 olanları sadece göstermek için SQL kısmında tablolamada bir alan tanımlayıp bu alanda aktif – pasif yazı şeklinde istediğiniz yazıların durumunu belirtebilirsiniz.Repeater kontrolü içinde de SQL Query yazarken bu alanın durumuna göre örneğin sadece aktif yazıları listeleme şartı koşabilirsiniz. Kodsal olarak takıldığınız bir nokta var ise kodlarınızı ve yapınızı yollayın birlikte bakalım.

  3. Teşekkür ederim ilgilendiğiniz için.. asp.net VB konusunda yeni sayılırım bundan daha önce masaüstü programlama VB.NET kodsal deneyimim mevcut fakat SQL sorguları’nda ve bunu asp.net ortamına yansıtmada baya eksiklerim mevcut..Blog’unuzu vakit buldukça takip ediyorum bu eksiğimi giderebilmem için güzel yazılarınız mevcut. Aslında dediğiniz gibi aktif yazılar için tablo içinde farklı bir sütün açılabilir bunun için sql sorgu kodlarına başvurmamız gerekecek sanırım.. şu şekilde yapıyordum böylede tek veri çekiyordu haliyle

    Function yazioku(ByVal id As Integer) As String
    Dim vt As New OleDbConnection(“Provider=Microsoft.JET.OLEDB.4.0;Data Source=” & (Yeni.App_Path() & “App_Data\DBM.mdb”))
    Dim komut As New OleDbCommand
    Dim veriler As System.Data.OleDb.OleDbDataReader
    Try
    vt.Open()
    komut.Connection = vt
    komut.CommandText = “Select * from Yazilar where ID=” & id
    komut.ExecuteNonQuery()
    veriler = komut.ExecuteReader

    ‘ i = 0
    ‘Do While veriler.Read
    Repeater2.DataSource = veriler
    Repeater2.DataBind()

    ‘ Response.Write(veriler(1)

    ‘Loop
    vt.Close()
    Catch ex As Exception

    Response.Write(ex.Message)
    End Try
    End Function

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    yazioku(2)

    End Sub

  4. üstteki mesajım eksik çıkmış
    source kısmıda şu şekilde

  5. Mehmet bey istiyorsanız C# kodları ile ASP.NET uygulaması olarak bu konuda örnek bir iki yazı yazayım, siz bu yazılardan VB Scripte göre uyarlama yapın. Hem yeni bir yazı olmuş olur hemde diğer arkadaşlar faydalanır. 1-2 gün içinde bu yazıları yayınlarım.

  6. Tekrar teşekkür ediyorum yazılarınızı bekliyorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir