• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 8/2/2020 11:38:31 PM'Basit' Yazılım Dili
  • 6/25/2020 3:18:13 PMderleme hatası
  • 12/11/2017 4:49:15 PMWindows Hizmeti Hk.
  • 4/23/2016 12:55:33 AMC programlama 2 oyun

Popüler Sorular

  • 5/27/2012 5:49:50 AMAsp.Net ile Date time alana veri ekleyemiiyorum ?
  • 4/2/2012 12:45:18 AM.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 5/12/2012 8:44:49 AMAcil Yardım
  • 5/27/2012 1:46:51 PMveri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LibreOffice
  • LINQ
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

ASP.NET WEB Uygulamalarında LİNQ to SQL Kullanımı

Bu yazımızda, ASP.Net ile web uygulamalarımızda LİNQ to SQL kullanımını ele alacağız.

06.11.2012

Yazar: Muhammed ÖNAL (Google+)

Kategori: ASP.NET

9231

ASP.NET WEB Uygulamalarında LİNQ to SQL Kullanımı

Merhaba değerli arkadaşlar,

Bu yazımızda, ASP.Net ile web uygulamalarımızda LİNQ to SQL kullanımını ele alacağız.

Bu makalenin daha iyi anlaşılabilmesi için LINQ ve LINQ kullanımına bakmanız gerekmektedir. Çünkü LINQ .NET teknolojisinde uygulamalar içinde kullanılarak yazılım geliştiricilerinin kullandığı yazılım dilini oldukça kolaylaştıran bir teknoloji diyebiliriz.İşte bu kolaylıkların başında da Veritabanı işlemleri gelmektedir.LINQ to SQL server işlemlerine dair örnek uygulamamızda bunu hep birlikte göreceğiz.Bunu sağlayan teknik ise ORM tekniğidir.

Yazımızda göstermiş olduğumuz uygulamamız Linq ile Asp.net web uygulaması geliştiren başlangıç seviyesindeki yazılımcı arkadaşlarımıza yol göstermesi amacıyla ele alınmıştır.

Uygulamamızda kullanacağımız bu Linq to Sql,Sql Server ile çalışan bir ORM(Object Relational Mapping) yapısıdır. ORM,yukarda da bahsettiğimiz gibi biz yazılımcılar üzerindeki iş yükünü hafifleten bir teknolojidir.

Uygulamamızı Visual Studio 2010 ile gerçekleştiriyoruz. New Project -->C#-->web -->Empty Asp.Net Project yolunu izleyerek, yeni bir web projesi açıyoruz. Açtığımız uygulamamıza bir .aspx web formunu ekleyelim.Ekleyeceğimiz web formunun adı default.aspx olsun.

NOT:
Uygulamamız, tabloya kayıt ekleme, silme, düzenleme, veri görüntüleme gibi işlemlerin tamamını gerçekleştirmektedir.

Web Projemizi AspNetLinq olarak adlandırdık.

Default.aspx kodlarımız aşağıdaki gibidir.

Default.aspx

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <asp:Button ID="btnGoruntule" runat="server" Text="Görüntüle" 
OnClick="btnGoruntule_Click" />

    <asp:Button ID="btnYeniEkle" runat="server" Text="Yeni Ekle" 
OnClick="btnYeniEkle_Click" />

    <table id="tblForm" runat="server">

        <tr>

            <td>Ülke Adı:</td>

            <td><asp:TextBox ID="txtUlkeAdi" runat="server"></asp:TextBox></td>

        </tr>

        <tr>

            <td>Ülke Kodu:</td>

            <td><asp:TextBox ID="txtUlkeKodu" runat="server"></asp:TextBox></td>

        </tr>

        <tr>

            <td colspan="2">

                <asp:Button ID="btnKaydet" runat="server" Text="Ekle" 
OnClick="btnKaydet_Click" />

                <asp:Button ID="btnGuncelle" runat="server" Text="Güncelle" 
OnClick="btnGuncelle_Click" />

                <asp:Button ID="btnIptal" runat="server" Text="İptal" 
OnClick="btnIptal_Click" Width="46px" />

            </td>

        </tr>

    </table>

    <table id="tblGrid" runat="server">

        <tr>

            <td><asp:Label ID="lblID" runat="server" Visible="false"></asp:Label>

                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" 
OnRowCommand="GridView1_RowCommand">

                    <Columns>

                        <asp:BoundField DataField="UlkeID" HeaderText="ID" />

                        <asp:BoundField DataField="UlkeAdi" HeaderText="Ülke Adı" />

                        <asp:TemplateField>

                            <ItemTemplate>

                                <asp:LinkButton ID="lnkDuzenle" runat="server" 
CommandArgument='<%# Eval("UlkeID")%>'

                                    CommandName="cmdDuzenle" Text="Düzenle"></asp:LinkButton>

                                  --- 

                                <asp:LinkButton ID="lnkSil" runat="server" 
CommandArgument='<%# Eval("UlkeID")%>'

                                    CommandName="cmdSil" Text="Sil">

                                        </asp:LinkButton>

                            </ItemTemplate>

                        </asp:TemplateField>

                    </Columns>

                </asp:GridView>

            </td>

        </tr>

    </table>

   

    </div>

    </form>

</body>

</html>
 

 

Şimdide bu Asp.Net projemize SAĞ tıklayalım. -->Add New Item seçeneğine tıklayıp LINQ to SQL Classes ekleyelim. Aşağıdaki gibi:
 

 

 

 

        
Veritabanımızın programatik tarafındaki modellemesi bu ana nesne ile yapılmaktadır. Daha iyi anlayabilmek adına aşağıdaki görsel ekran görüntülerini inceleyiniz.

Yukardaki ekran çıktısında gördüğünüz gibi oluşturduğumuz LINQ to SQL Classes dosyamızın adı Ulkeler.dbml’dir.

Veritabanımızdan nesne çekebilmemiz ve bu nesnenin modellemisini yapabilmemiz için SQL Server 2008’de oluşturduğumuz tablo şu şekilde olacaktır.

Veritabanımızın adı: Deneme
Tablomuzun adı:  tblUlke

 

 

CREATE TABLE [dbo].[tblUlke](

      [UlkeID] [int] IDENTITY(1,1) NOT NULL,

      [UlkeAdi] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

      [UlkeKodu] [nvarchar](10)COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

      [Durum] [nvarchar](10)   COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

     

 CONSTRAINT [PK_tblUlke] PRIMARY KEY CLUSTERED

(

[UlkeID] ASC

)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

 

 

Nesnemizi ekledikten sonra karşımıza çıkan ORM designer aracı bizlere modellemesini yapacağımız veritabanımızdan nesnelerin seçilmesini sağlayan bir tasarım aracıdır.

Bu işlemlerin hemen ardından şimdi Veritabanımıza bağlanalım. Aşağıdaki ekran görüntüsünü incelediğimizde: Bu yöntemler sırasıyla yapılması gerekmektedir.

Şu adımları takip edelim:
  --> Visual Studio 2010 Server Explorer’da Data Connection üzerine SAĞ Click yapalım ve ardından
  -->Add Connection tıkladıktan sonra karşımıza aşağıdaki gibi bir form gelecektir.

Bu form üzerinde gerekli Server adını yazıyoruz.ve

  • Connect or enter a database name: seçeneğinden Sql Server’da oluşturduğumuz Deneme adlı veritabanımızı seçiyoruz.


 

Seçtiğimiz Veritabanımızı ekledikten sonra aşağıdaki işlemleri uygulamamız lazım. Modelleme yapacağımız tabloyu Object Relational Designer aracına sürükle bırak metoduyla sürükleyip bırakıyoruz. Ve aşağıdaki gibi bir sonuç elde etmemiz gerekir.

Sonrasında ConncetionString’imizi yapılandırmak için Web.Config dosyası içinde aşağıdaki gibi bağlantı cümleciğimizi tanımlıyoruz:


 

ConnectionString tanımladıktan sonra şimdide code behind tarafında C# programlama dili ile yapacağımız işlemleri adım adım gösterelim.

Öncelikle Web uygulamamızın Design’ını göstermekte fayda olacağını düşünüyorum. Zaten Design sayfamıza ait kodlarımız yukarıda mevcuttur:

Code Behind tarafında ilk olarak işlemleri gerçekleştirebilmemiz ve ConnectionString ile veritabanı bağlantımızı gerçekleştirebilmemiz için isim uzaylarını (namespaces) eklememiz gerekmektedir.

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

using System.Data.SqlClient;

using System.Configuration;
 

 

 

 

Varsayılanlara ek olarak şu 3 isim uzayını eklemiş olduk:

 

using System.Data;

using System.Data.SqlClient;

using System.Configuration;
 

 

 

 

Linq to Sql Classes vasıtasıyla Ekleme ve Kaydetme işlemini şu şekildeki kodlarımızla gerçekleştiriyoruz:

 

Burada, UlkelerDataContext nesnesi ile ulkeler veritabanı arasında işlem yapılacağı belirtilmektedir. Veritabanına Ülke kaydı ekleneceği için tblUlke türünden bir nesne ile ekleyeceğimiz kayıt oluşturuluyor.tblUlke , veritabanındaki tablonun yazılım tarafına yansıması olduğu için bu nesne türü üzerinden oluşturulacak veriler, tablonun bir satırı olarak düşünülebilir.Kaydedildiğinde veritabanında tblUlke tablosuna bir kayıt olarak eklenecektir.

 

ulkeler.tblUlkes.InsertOnSubmit(ulke);  satırı ile ulkeler nesnesi içerisinde bulunan tblUlke tablosuna kayıt ekleme işlemi gerçekleştiriliyor.Bu ekleme işlemi bellekte olmaktadır.

ulkeler.SubmitChanges(); satırı ise hafızadaki ulkeler nesnesi veritabanına aktarılmaktadır.

 

Ve ardından Gridview’e kaydedilen verilerimizi Görüntüleyebilmemizi sağlayan metodumuzu yazacak olursak:  ViewData() metodu:

 

ViewData() metodumuza ait kodlarımızın hemen ardından,

Düzenle ve Sil metodlarımıza ait kodlarımızı gösteren kod yapısını gösterecek olursak :

 

Eklediğimiz verilerde bir Güncelleme yapmak isteyebiliriz. O zaman Güncelleme metodumuza ait kodlarımız aşağıdaki gibidir:


 

Son olarak tüm metotlarda kullandığımız ortak Metotlarımızı yazalım. Tabii ki Metotlarda kullandığımız bu ortak metotlarımızı sayfa içinde kullanmak zorunlu değildir.

 

Ve gördüğünüz gibi kodlarımız bundan ibaret. Şimdide Web sayfamızda oluşan bir iki ekran görüntüsünü de sizlerle paylaşacak olursak:

Projemizi Çalıştırdıktan sonra açılan Web Sayfamızda ilk olarak à Yeni Ekle tıklıyoruz. Ve tıkladıktan sonra yeni kayıt girişine olanak tanınacağından Yeni Ekle butonu Visible özelliği false olacaktır.

Görüntüle Butonuna tıkladığımızda DataGrid’e aktarılan verilerimiz ise aşağıdaki gibi olacaktır. Daha önceden girdiğimiz birkaç veri mevcuttur.

Veritabanımıza göz attığımızda ise aşağıdaki gibi kaydedildiğini görmekteyiz:

 

Bugünlükte bizden bu kadar diyor ve makalemizin sonuna gelmiş bulunuyoruz. Kafanıza takılan soru işaretleri var ise mail yoluyla sorularınızı iletebilirsiniz.

Yazılım ve Programlama aşkı ile tutuştuğumuz bir sonraki yazımızda görüşmek dileğiyle.

Saygılarımla;

Muhammed ÖNAL
Bilgisayar Mühendisi
RFID Sistemleri Uzmanı
BT Yönetişimcisi

Blog:  http://www.muhammedonal.com
Web : http://www.yazilimdilleri.net


Copyright © Muhammed ÖNAL , 2012

 

 

 

 

 

Yazar Hakkında

Muhammed ÖNAL

Muhammed ÖNAL

www.muhammedonal.com

Bilgisayar Mühendisi | RFID Sistemleri Uzmanı | BT Yönetişimcisi | Strateji Planlama ve İş Geliştirme 2015 itibariyle sağlık sektöründe Bilgi Sistemleri Yöneticisi ve Üst yönetim Stratejik Planlama ve İş Geliştirme Koordinatörü pozisyonunda çalışmaktadır.

Sosyal Medya

ORANLAR

  • 9231izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Merhaba, ellerinize sağlık çok yardımcı ol...
  • Merhaba Bu uygulama örneğinden ASP.net ...
  • Hocam Link başka sayfaya yönlendiriyor.

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 124113
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 71306
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 51908
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ