Sadık TURAN öğretmenimizin http://www.youtube.com/user/sadikturan41 hazırladığı videolara bakarak basitce veritabanı sunucusuna bağlanarak listele, ekle, güncelle ve silme işlemlerini yapalım.

“Microsoft Visual Studio 2012 Ultimate” ile C# dilinde “ASP.NET Empty Web Application” açıyorum.

sql1

Boş proje içine veritabanımızı oluşturacağımız “App_Data” klasörü ekliyorum. App_Data’a sağ tıklayıp yeni bir SQL veritabanı oluşturuyorum. Adı basitVT.mdf olan bir veritabanı, içine basitBirAlanAdi olan bir basitBirTablo ekliyorum. Yani içinde metin olan bir nvarchar(50) alan ekliyorum.

sql2

“Server Explorer” penceresindeki basitVT’deki Tables sağ tıklanıp yeni tablo komutu verilir.

ScreenShot003
ScreenShot001

Id sütununun özelliklerinden (Is Identity) seçeneğini True yapınız. Tablonun adını T-SQL penceresinden düzenleyiniz. “Update” düğmesine basarak T-SQL’inizi çalıştırınız.

Tabloya sağ tıklatıp “Show Table Data” diyerek örnek veri girebilirsiniz.

ScreenShot002

Veritabanı hazır olduğuna göre sitemize bir “Default.aspx” ekleyelim.

ScreenShot004

ScreenShot005

Sayfa içindeki Textbox ve Button nesnelerini uygun isimler vererek oluşturalım:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="sqlEntity.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>SQL Örnek Projesi</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2>Listeleme:</h2>
<table style="width: 39%;">
<tr>
<td>Id</td>
<td>basitBirAlanAdi</td>
</tr>
<asp:Repeater ID="repeater_veriListesi" runat="server">
<ItemTemplate>
<tr>
<td><%#Eval("Id")%></td>
<td><%#Eval("basitBirAlanAdi")%></td>
</tr>
</ItemTemplate>
</asp:Repeater>
<!--<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>-->
</table>
<hr />
<h2>Ekleme:</h2>
Bir metin verisi giriniz:
<asp:TextBox ID="txt_veriEkleme" runat="server"></asp:TextBox>
&nbsp;<asp:Button ID="Button_Ekle" runat="server" Text="Ekle" UseSubmitBehavior="False"/>
<br />
<hr />
<h2>Güncelleme:</h2>
Güncellenecek kayıt no:
<asp:TextBox ID="txt_GuncellenecekId" runat="server" Width="46px"></asp:TextBox>
<br />
Yeni değeri giriniz:
<asp:TextBox ID="txt_YeniDeger" runat="server"></asp:TextBox>
&nbsp;<asp:Button ID="Button_Guncelle" runat="server" Text="Güncelle" UseSubmitBehavior="False"/>
<br />
<hr />
<h2>Silme:</h2>
Silinecek kayıt no:
<asp:TextBox ID="txt_SilinecekId" runat="server" Width="46px"></asp:TextBox>
&nbsp;<asp:Button ID="Button_Sil" runat="server" Text="Sil" UseSubmitBehavior="False"/>
&nbsp;<br />
<asp:CheckBox ID="cb_SilOnay" runat="server" Text="Silinmesini onaylıyorum" />
</div>
</form>
</body>
</html>

Veritabanı ve arayüz hemen hemen hazır. Tablo içine veriler tekrarlanarak (repeater) gelecektir.

Şimdi asıl işi yapacak olan nesneyi eklemeye geldik. Projeye sağ tıklayıp “Add New Item…” ile “ADO.NET Entity Data Model” oluşturalım.

ScreenShot006

Çıkan sihirbazdan varolan veritabanı ve tablo ismi seçilerek işlem tamamlanır. Ayarlar “Web.config” içine basitVTEntities adında eklenecektir. Model ismi de basitVTModel olarak geçecektir. Birkaç güvenlik uyarısından sonra basitModel.edmx dosyası ekrana gelecektir.

ScreenShot007

Artık kodlamaya gelebiliriz. Buradaki kodlamanın eski yöntemlere göre çok daha az olduğunu söylemeliyim. Sayfanın yüklenme olayına veri listeleme, 3 düğmeye de tıklanma olaylarını yazalım:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace sqlEntity
{
public partial class Default : System.Web.UI.Page
{
public basitVTEntities veritabani = new basitVTEntities();
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
veriListele();
}
private void veriListele()
{
var kayitlar = from i in veritabani.basitBirTablo
select i;
repeater_veriListesi.DataSource = kayitlar.ToList<basitBirTablo>();
repeater_veriListesi.DataBind();
lbl_mesaj.Text += "<br/>Veri listelendi." + DateTime.Now.ToString();
}
protected void Button_Ekle_Click(object sender, EventArgs e)
{
basitBirTablo kayit = new basitBirTablo();
kayit.basitBirAlanAdi = txt_veriEkleme.Text;
veritabani.basitBirTablo.Add(kayit);
veritabani.SaveChanges();
veriListele();
lbl_mesaj.Text += "<br/>Kayıt ekleme tamamlandı.";
}
protected void Button_Guncelle_Click(object sender, EventArgs e)
{
int aranan = Convert.ToInt32(txt_GuncellenecekId.Text);
basitBirTablo kayit = (from i in veritabani.basitBirTablo
where (i.Id == aranan)
select i).First<basitBirTablo>();
kayit.basitBirAlanAdi = txt_YeniDeger.Text;
veritabani.SaveChanges();
veriListele();
lbl_mesaj.Text += "<br/>Kayıt güncelleme tamamlandı.";
}
protected void Button_Sil_Click(object sender, EventArgs e)
{
if (cb_SilOnay.Checked)
{
int aranan = Convert.ToInt32(txt_SilinecekId.Text);
basitBirTablo kayit = (from i in veritabani.basitBirTablo
where (i.Id == aranan)
select i).First<basitBirTablo>();
veritabani.basitBirTablo.Remove(kayit);
veritabani.SaveChanges();
veriListele();
lbl_mesaj.Text += "<br/>Kayıt silme tamamlandı.";
}
}
}
}
ScreenShot008

Sonuç ekranı üstteki gibidir. Tüm kodları indirmek için tıklatınız.