98
Proje Uygulaması Video Marketi Oluşturmak Film Dünyası Video Marketi: Mevcut Senaryo Film Dünyası İstanbul’da bir video şirketidir. Şirket film videoları satmakta ve de filmler hakkında bilgi vermektedir. Şirket Türkiye genelinde değişik şehirlerde dükkânlara sahiptir. Film Dünyası birkaç ay öncesine kadar video satış piyasasında tekel olmanın tadını çıkarıyordu. Şimdi şirketin film video piyasasında neden pay kaptırdığını anlamak için mevcut sistemine bir göz atalım. Film Dünyası dükkânları filmler hakkında kataloglar vasıtasıyla bilgi vermekte ve müşteriler ilgilerini çeken filmleri bulmak için katalogları incelemekte. Filmi seçtikten sonra müşteri filmi DVD, CD veya VHS formatında satın alabilmektedir. Video satışları düşüşe geçince şirket yönetimi nedeni öğrenmek için bir araştırma takımı kurdu. Takım şu kara vardı: bu otomasyon çağında eski kâğıt katalog sistemi eski ve yavaş kaldı. Bu da müşteri memnuniyetsizliği doğurdu. Dolayısıyla bu problemin çözümü mevcut sistemi otomasyona dönüştürmektir. Film Dünyası Video Marketi: Çözüm Önceki kısımda da bahsedildiği gibi çözüm, mevcut sistemi otomasyona dönüştürmektir. Diğer bir değişle, dükkâna giren bir müşteri film hakkında filmin adı, oyuncuları ve yönetmeni gibi bilgiler veren bir uygulamayı çalıştıran bil gisayardan faydalanabilmeli. Bu bilgileri kullanarak müşteri filmi satın alıp almamaya karar verebilmeli. Dahası müşteri filmin adı, yönetmeni veya oyuncuları gibi bazı kıstaslar doğrultusunda film arayabilmelidir. Müşteri ayrıca belli bir film, oyuncu veya yönetmen hakkında da bilgi edinebilmelidir. Bu bilgiler bir Microsoft SQL 2005 veritabanında tutulmaktadır. Gereken şey basit ve etkileşimli arayüz sunan bir programdır. Aşağıdaki kısım bir uygulama geliştirmek için gerekli tipik adımları açıklamaktadır. Veritabanı Şeması

C# projesi

Embed Size (px)

DESCRIPTION

C# proje uygulaması - video marketi oluşturmak

Citation preview

Page 1: C# projesi

Proje Uygulaması — Video Marketi Oluşturmak

Film Dünyası Video Marketi: Mevcut Senaryo

Film Dünyası İstanbul’da bir video şirketidir. Şirket film videoları satmakta ve de filmler hakkında bilgi vermektedir. Şirket Türkiye genelinde değişik şehirlerde dükkânlara sahiptir. Film Dünyası birkaç ay öncesine kadar video satış piyasasında tekel olmanın tadını çıkarıyordu. Şimdi şirketin film video piyasasında neden pay kaptırdığını anlamak için mevcut sistemine bir göz atalım.

Film Dünyası dükkânları filmler hakkında kataloglar vasıtasıyla bilgi vermekte ve müşteriler ilgilerini çeken filmleri bulmak için katalogları incelemekte. Filmi seçtikten sonra müşteri filmi DVD, CD veya VHS formatında satın alabilmektedir. Video satışları düşüşe geçince şirket yönetimi nedeni öğrenmek için bir araştırma takımı kurdu. Takım şu kara vardı: bu otomasyon çağında eski kâğıt katalog sistemi eski ve yavaş kaldı. Bu da müşteri memnuniyetsizliği doğurdu. Dolayısıyla bu problemin çözümü mevcut sistemi otomasyona dönüştürmektir.

Film Dünyası Video Marketi: Çözüm

Önceki kısımda da bahsedildiği gibi çözüm, mevcut sistemi otomasyona dönüştürmektir. Diğer bir değişle, dükkâna giren bir müşteri film hakkında filmin adı, oyuncuları ve yönetmeni gibi bilgiler veren bir uygulamayı çalıştıran bilgisayardan faydalanabilmeli. Bu bilgileri kullanarak müşteri filmi satın alıp almamaya karar verebilmeli.

Dahası müşteri filmin adı, yönetmeni veya oyuncuları gibi bazı kıstaslar doğrultusunda film arayabilmelidir. Müşteri ayrıca belli bir film, oyuncu veya yönetmen hakkında da bilgi edinebilmelidir. Bu bilgiler bir Microsoft SQL 2005 veritabanında tutulmaktadır. Gereken şey basit ve etkileşimli arayüz sunan bir programdır. Aşağıdaki kısım bir uygulama geliştirmek için gerekli tipik adımları açıklamaktadır.

Veritabanı Şeması

Page 2: C# projesi

Not: Musteri tablosunun MusteriNo alanının Identity özelliği Yes olmalıdır.

Page 3: C# projesi

Ana Form

İsimden de anlaşılacağı üzere Ana Form müşterinin Müşteri modülünde göreceği ilk formdur. Ana form müşterinin arama yapıp sipariş verebileceği merkezi yerdir. Ayrıca Ana Form müşterinin kaydolup bir müşteri numarası almasına da imkân verir.

Ana Formun Özellikleri:

Özellik Değer

Name FrmAna

Text Film Dünyası

Size 320, 368

Arayüzden de görüldüğü üzere Ana Form iki grup kutusu (GroupBox) içermektedir: Kayıtlı Müşteri ve Yeni Müşteri.

Eğer müşteriler kayıtlı kullanıcı ise Kayıtlı Müşteri grup kutusundaki kontrolleri kullanabilirler. Müşteriler müşteri numaralarını Müşteri No metin kutusuna girip Gönder butonuna tıklayabilirler. Müşteri Gönder butonuna tıklayınca Arama formu açılır. Arama formu müşterinin film aramasını sağlar. Eğer müşteri kayıtlı bir kullanıcı değilse Yeni müşteri grup kutusundaki kontrolleri kullanabilir. Burada müşteri Kayıt veya Ara butonlarına tıklayabilir. Eğer müşteri Kayıt butonuna tıklarsa Kayıt formu görüntülenir. Müşteri Kayıt formunu kaydolmak ve müşteri numarası edinmek için kullanabilir. Farklı olarak kullanıcı Ara butonuyla film arayabilir.

Tablo: Grup Kutularının (GroupBox) Özellikleri

Kontrol Özellik Değer

Group box 1 Name GrbKayitliMusteri

Group box 1 Text Kayıtlı Müşteri

Group box 2 Name GrbYeniMusteri

Group box 2 Text Yeni Müşteri

Grup kutularına ilave olarak Ana form dört adet etiket içerir.

Page 4: C# projesi

Tablo: Etiketlerin (Label) Özellikleri

Kontrol Özellik Değer

Label 1 Name LblHosgeldiniz

Label 1 Text Film Marketi'ne Hoşgeldiniz

Label 2 Name LblMusteriNo

Label 2 Text Müşteri No:

Label 3 Name LblKayit

Label 3 Text Kaydolmak için:

Label 4 Name LblKayitsiz

Label 4 Text Kaydolmadan devam et:

LblHosgeldiniz etiketinin Font özellikleri:

Özellik Değer

Name Comic San MS

Size 14.25

Bold True

Forecolor Desktop

Bunlara ilave olarak Kayıtlı Müşteri grup kutusunda bir tane de metin kutusu mevcut. Metin kutusunun Name özelliği TxtMusteriNo olarak ayarlanmalıdır.

Ana formda ayrıca dört adet buton var.

Tablo: Butonların (Buton) Özellikleri

Kontrol Özellik Değer

Button 1 Name CmdGonder

Button 1 Text Gönder

Button 2 Name CmdKayit

Button 2 Text Kayıt

Button 3 Name CmdAra

Button 3 Text Ara

Button 4 Name CmdCikis

Button 4 Text Çıkış

Bir müşteri Müşteri No metin kutusuna geçerli bir müşteri numarası girdiğinde ve Gönder butonuna tıkladığında Arama formu görüntülenir. Arama formu ayrıca müşteri Yeni müşteri grup kutusundaki Ara butonuna tıklayınca da görüntülenir.

Page 5: C# projesi

Arama Formu

Arama formu müşterilerin film aramasına imkân verir.

Arama Formunun Özellikleri:

Özellik Değer

Name FrmArama

Text Arama

Size 384, 336

Arama formu üç tane etiket içerir.

Tablo: Etiketlerin Özellikleri

Kontrol Özellik Değer

Label 1 Name LblAranan

Label 1 Text Aranan ifade:

Label 2 Name LblAramaKriteri

Label 2 Text Arama kriteri:

Label 3 Name LblAramaSonucu

Label 3 Text Arama sonucu:

Arama formu ayrıca bir metin kutusuyla bir açılan kutu içerir.

Tablo: Metin (TextBox) ve Açılan Kutunu (ComboBox) Özellikleri

Kontrol Özellik Değer

Text Box Name TxtAranan

Combo Box Name CmbAramaKriteri

Page 6: C# projesi

Combo Box DropDownStyle DropDownList

Bu özelliklere ek olarak açılan kutunun Items özelliğini de ayarlamalıyız. Items özelliği seçildiğinde (Collection) değerinin yanında … butonu görüntülenir. Açılan kutuya değer eklemek için bu butona tıklanmalıdır.

Butona tıklayınca, String Collection Editor diyalog kutusu görüntülenir. Bu diyalog kutusu vasıtasıyla açılan kutuya değer ekleyebilirsiniz.

Arama formu bir de liste görünümü (ListView) kontrolü içerir. Liste görünümü kontrolünün özellikleri:

Özellik Değer

Name LvwAramaSonucu

View Details

FullRowSelect True

GridLines True

Arama formu üç butona sahiptir.

Tablo: Butonların Özellikleri

Kontrol Özellik Değer

Button 1 Name CmdAra

Button 1 Text Ara

Page 7: C# projesi

Button 2 Name CmdSiparisVer

Button 2 Text Sipariş Ver

Button 3 Name CmdCikis

Button 3 Text Çıkış

Alternatif olarak, müşteriler Ara butonunu Filmler veritabanına göz atmak için de kullanılabilir. Bir film aramak için müşteri şu adımları izlemelidir:

1. Aranacak metin Aranan İfade metin kutusuna girilir. Bu metin oyuncu, yönetmen, yapımcı veya film adı olabilir.

2. Arama Kriteri açılan kutusundan bir kategori seçilir. Buradaki seçim hangi tabloda arama yapılacağını belirler. Örneğin müşteri Oyuncu seçeneğini seçerse, arama veritabanındaki Oyuncu tablosunda yapılır.

3. Ara butonu tıklanır.

Kullanıcı Ara butonuna tıkladığında sonuç liste görünümü kontrolünde görüntülenir. Sonuç girilen metne ve yapılan seçime göre belirlenir. Örneğin müşteri metin kutusuna “Brad” girip, Arama Kriteri açılan kutusundan Oyuncu seçeneğini seçip Ara butonuna tıklarsa Arama formunun görünümü aşağıdaki gibi olur.

Liste görünümü kontrolünde arama sonucu görüntülendiğinde, müşteri satın almak için bir film seçebilir. Bir film siparişi vermek için müşteri liste görünümünden filmi seçip Sipariş Ver butonuna tıklamalıdır.

Sipariş vermek için müşteri kayıtlı olmalıdır. Dolayısıyla müşterinin Ana formda bir müşteri numarası belirtip belirtmediğine göre Kayıt formu veya Sipariş Verme formu görüntülenir.

Page 8: C# projesi

Kayıt Formu

Kayıt formu müşterilerin kaydolmasına olanak verir.

Kayıt formu bir müşteri Ana formda Kayıt butonuna tıkladığında görüntülenir. Bu form aynı zamanda müşteri Ana formda kimlik numarası girmeyip Arama formunda Sipariş Ver butonuna tıkladığında da görüntülenir.

Kayıt Formunun Özellikleri:

Özellik Değer

Name FrmKayit

Text Kayıt

Size 392, 376

Kayıt formu birçok metin kutusu ve etiket içerir.

Tablo: Etiketlerin Özellikleri

Kontrol Özellik Değer

Label 1 Name LblAdi

Label 1 Text Adı:

Label 2 Name LblSoyadi

Label 2 Text Soyadı:

Label 3 Name LblAdres

Label 3 Text Adres:

Label 4 Name LblIlce

Label 4 Text İlçe:

Label 5 Name LblIl

Page 9: C# projesi

Label 5 Text İl:

Label 6 Name LblPostaKodu

Label 6 Text Posta Kodu:

Label 7 Name LblTelefonNo

Label 7 Text Telefon No:

Label 8 Name LblEPosta

Label 8 Text E-Posta:

Label 9 Name LblKKNo

Label 9 Text Kredi Kartı Numarası:

Label 10 Name LblKKSKT

Label 10 Text Son Kull.Tarihi:

Label 11 Name LblDogumTarihi

Label 11 Text D.Tarihi:

Tablo: Metin Kutularının Özellikleri

Kontrol Özellik Değer

Text Box 1 Name TxtAdi

Text Box 2 Name TxtSoyadi

Text Box 3 Name TxtAdres

Text Box 4 Name TxtIlce

Text Box 5 Name TxtIl

Text Box 6 Name TxtPostaKodu

Text Box 7 Name TxtTelefonNo

Text Box 8 Name TxtEPosta

Text Box 9 Name TxtKKNo

Etiket ve metin kutularına ilave olarak Kayıt formu iki adet tarih kontrolü (DatetimePicker) içerir. Biri Son Kullanma Tarihi, diğeri ise Doğum Tarihi etiketiyle ilişkilidir. Son Kullanma Tarihi etiketiyle ilişkili tarih kontrolünün Name özelliği DtpKKSKT, Doğum Tarihi etiketiyle ilişkili tarih kontrolünün Name özelliği ise DtpDogumTarihi olarak ayarlanır.

Kayıt formu aynı zamanda üç tane de buton içerir.

Tablo: Butonların Özellikleri

Kontrol Özellik Değer

Button 1 Name CmdGonder

Button 1 Text Gönder

Button 2 Name CmdTemizle

Button 2 Text Temizle

Button 3 Name CmdIptal

Page 10: C# projesi

Button 3 Text İptal

Müşteriler gönder butonu vasıtasıyla Kayıt formuna girmiş oldukları bilgileri veritabanına kaydedebilirler. Temizle butonu müşterinin Kayıt formundaki kontrolleri boşaltmasını sağlar. Müşteriler İptal butonu ile Kayıt formunu kapatabilirler.

Page 11: C# projesi

Sipariş Verme Formu

Sipariş Verme formu müşterilerin film siparişi vermesini sağlar. Bir müşteri arama formunda bir film seçip Sipariş Ver butonuna tıklayınca Sipariş Verme formu görüntülenir.

Sipariş Verme Formunun Özellikleri:

Özellik Değer

Name FrmSiparis

Text Sipariş Verme

Size 376, 352

Sipariş Verme formu dört etiket içerir.

Tablo: Etiketlerin Özellikleri

Kontrol Özellik Değer

Label 1 Name LblSecim

Label 1 Text Seçim:

Label 2 Name LblToplamTutar

Label 2 Text Toplam Tutar:

Label 3 Name LblKKNo

Label 3 Text Kredi Kartı Numarası:

Label 4 Name LblKKSKT

Label 4 Text Son Kullanma Tarihi:

Sipariş Verme formu aynı zamanda bir liste görünümü kontrolü de içerir. Liste görünümü nesnesinin özellikleri şöyledir:

Özellik Değer

Page 12: C# projesi

Name LvwSecim

View Details

FullRowSelect True

GridLines True

Sipariş Verme formu üç tane de metin kutusu içerir.

Tablo: Metin Kutularının Özellikleri

Kontrol Özellik Değer

Text Box 1 Name TxtToplamTutar

Text Box 2 Name TxtKKNo

Text Box 3 Name TxtKKSKT

Metin kutularına ilave olarak Sipariş Verme formunda iki tane buton da mevcut. Sipariş Ver ve İptal butonları.

Tablo: Butonların Özellikleri

Kontrol Özellik Değer

Button 1 Name CmdSiparisVer

Button 1 Text Sipariş Ver

Button 2 Name CmdIptal

Button 2 Text İptal

Seçilen film(ler)i sipariş etmek için müşteri Sipariş Ver butonuna tıklamalıdır.

Page 13: C# projesi

Ana Forma İşlevsellik Kazandırmak

Giriş

Önceki bölümde video marketinin Müşteri modülü için kullanıcı arayüzü oluşturmayı öğrendiniz.

Daha önce de görmüş olduğumuz üzere müşteri modülü aşağıdaki formlardan oluşur:

Ana form

Arama formu

Sipariş Verme formu

Kayıt formu

Bu bölümde müşteri modülünün Ana formuna işlevsellik kazandırmak için kod yazmayı öğreneceksiniz.

Ana formun Filmler veritabanına bağlanabilmesi için SQL Server .NET veri sağlayıcısını kullanmalısınız. SQL Server .NET veri sağlayıcısının sınıflarını kullanmak için, System.Data.SqlClient isim alanını (namespace) dâhil etmeliyiz. Bunun için aşağıdaki ifade Ana forma dâhil edilmelidir:

using System.Data.SqlClient;

Yukarıdaki ifadeye ilave olarak Ana forma aşağıdaki ifadeler de dâhil edilmelidir:

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlTypes;

Aşağıdaki değişkenler de Ana formda tanımlanmalıdır:

public static FrmArama ObjArama;

public static FrmKayit ObjKayit;

Ayrıca, ana formdan Filmler veritabanına bağlanmak için SqlConnection sınıfından bir nesne kullanılmalıdır. SqlConnection nesnesiyle veritabanına bağlanmada kullanılacak bağlantı ifadesi (ConnectionString) için değişken tanımlamak amacıyla uygulamaya bir sınıf eklemeliyiz. Bunun için Project menüsünden Add Class… seçeneği kullanılır. Oluşan sınıfa yazılacak kod şöyledir:

Page 14: C# projesi

public static String StrConnectionString = "Data Source=localhost;Initial

Catalog=Filmler;Integrated Security=True";

Ana Formun Tam Kod Dökümü

Liste: Ana Formun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication6

{

public partial class FrmAna : System.Windows.Forms.Form

{

public FrmAna()

{

InitializeComponent();

}

#region Default Instance

private static FrmAna defaultInstance;

public static FrmAna Default

{

get

{

if (defaultInstance == null)

{

defaultInstance = new FrmAna();

defaultInstance.FormClosed += new

FormClosedEventHandler(defaultInstance_FormClosed);

}

return defaultInstance;

}

}

static void defaultInstance_FormClosed(object sender, FormClosedEventArgs e)

{

defaultInstance = null;

}

#endregion

public static FrmArama ObjArama;

public static FrmKayit ObjKayit;

private void CmdGonder_Click(System.Object sender, System.EventArgs e)

{

if (TxtMusteriNo.Text.Trim() == "")

{

MessageBox.Show("Müşteri numaranızı giriniz.");

}

else

{

ObjArama = new FrmArama();

if (Information.IsNumeric(TxtMusteriNo.Text))

{

if (MusteriNoGecerlimi(TxtMusteriNo.Text))

{

ObjArama.KayitNoAyarla(TxtMusteriNo.Text);

ObjArama.Show();

}

Page 15: C# projesi

else

{

MessageBox.Show("Geçersiz Müşteri numarası");

}

}

else

{

MessageBox.Show("Geçersiz Müşteri numarası");

}

}

}

private bool MusteriNoGecerlimi(String MusteriNo)

{

bool returnValue;

String StrSorgu;

String StrKayitSayisi;

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

StrSorgu = "SELECT COUNT(MusteriNo) FROM Musteri WHERE MusteriNo =\'" +

MusteriNo + "\'";

SqlConnection1.Open();

SqlCommand SelectCmd = new SqlCommand(StrSorgu, SqlConnection1);

StrKayitSayisi = Convert.ToString( SelectCmd.ExecuteScalar());

SqlConnection1.Close();

SqlConnection1.Dispose();

SelectCmd.Dispose();

if (int.Parse( StrKayitSayisi)> 0)

{

returnValue = true;

}

else

{

returnValue = false;

}

return returnValue;

}

private void CmdKayit_Click(System.Object sender, System.EventArgs e)

{

ObjKayit = new FrmKayit();

ObjKayit.Show();

}

private void CmdAra_Click(System.Object sender, System.EventArgs e)

{

ObjArama = new FrmArama();

ObjArama.Show();

}

private void CmdCikis_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

}

}

Page 16: C# projesi

Arama Formuna İşlevsellik Kazandırmak

Giriş

Bu bölümde Müşteri modülünün Arama formuna işlevsellik kazandırmayı öğreneceğiz.

Arama formu müşterilere Filmler veritabanında arama yapmayı izin verir. Ana formda da görmüş olduğumuz üzere Arama formunu veritabanına bağlamak için SQL Server .NET veri sağlayıcısına ihtiyacımız var. Bunun için aşağıdaki ifadeler Arama formuna ilave edilmelidir:

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

Ayrıca aşağıdaki değişkenler de Arama formunda tanımlanmalıdır:

public static FrmSiparis ObjSiparisVer;

public static FrmKayit ObjKayit;

public static String[] FilmNoDizisi = new String[11];

//String dizi tanımı

private static String StrKayitNo;

//Müşteri No'yu tutan string değişken tanımı

Arama Formunun Tam Kod Dökümü

Liste: Arama Formunun Kodu

using System;

using System.Windows.Forms;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication6

{

public partial class FrmArama : System.Windows.Forms.Form

{

public static FrmSiparis ObjSiparisVer;

public static FrmKayit ObjKayit;

public static String[] FilmNoDizisi = new String[11];

//String dizi tanımı

Page 17: C# projesi

private static String StrKayitNo;

//Müşteri No'yu tutan string değişken tanımı

private void CmdCikis_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

private void CmdSiparisVer_Click(System.Object sender, System.EventArgs

e)

{

ListView.SelectedListViewItemCollection LstViewCollection;

LstViewCollection = new

ListView.SelectedListViewItemCollection(LvwAramaSonucu);

int IntToplamSecilenSayisi;

IntToplamSecilenSayisi = LstViewCollection.Count;

if (IntToplamSecilenSayisi < 1)

{

MessageBox.Show("Hiçbir film seçmediniz. Lütfen listeden

film(ler)inizi seçip \"Sipariş Ver\" butonuna tıklayınız.");

return;

}

if (StrKayitNo == "")

{

MessageBox.Show("Sipariş vermeden önce kaydolmalısınız.");

ObjKayit = new FrmKayit();

ObjKayit.Show();

}

else

{

ObjSiparisVer = new FrmSiparis();

ObjSiparisVer.KayitNoAyarla(StrKayitNo);

int IntSayac;

for (IntSayac = 0; IntSayac <= IntToplamSecilenSayisi - 1;

IntSayac++)

{

FilmNoDizisi[IntSayac] =

LstViewCollection[IntSayac].Text;

}

ObjSiparisVer.SecilenFilmeriAyarla(FilmNoDizisi,

IntToplamSecilenSayisi);

ObjSiparisVer.Show();

}

}

private void CmdAra_Click(System.Object sender, System.EventArgs e)

{

DataSet DsDataSet;

String StrAramaKriteri;

String StrSorgu;

int Sonuc;

bool StrAramaBosmu;

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

SqlCommand SqlSelectCommand1 = new SqlCommand();

StrAramaBosmu = false;

if (TxtAranan.Text.Trim() == "")

{

StrAramaBosmu = true;

}

StrAramaKriteri = CmbAramaKriteri.Text;

if (String.Compare(StrAramaKriteri, "Film", true) == 0)

{

Page 18: C# projesi

Sonuc = 0;

StrSorgu = "SELECT DISTINCT a.FilmNo, b.OyuncuNo,

c.YonetmenNo, d.YapimciNo, a.FilmAdi, b.Adi AS Oyuncu, c.Adi AS Yonetmen, d.Adi AS

Yapimci FROM Film a, Oyuncu b, Yonetmen c, Yapimci d, OyuncuFilmleri e WHERE a.FilmNo =

e.FilmNo AND e.OyuncuNo = b.OyuncuNo AND a.YonetmenNo = c.YonetmenNo AND a.YapimciNo =

d.YapimciNo ";

if (! StrAramaBosmu)

{

StrSorgu += " AND a.FilmAdi LIKE \'" + TxtAranan.Text

+ "%\'";

}

}

else if (String.Compare(StrAramaKriteri, "Oyuncu", true) == 0)

{

Sonuc = 1;

StrSorgu = "SELECT DISTINCT a.FilmNo, b.OyuncuNo,

c.YonetmenNo, d.YapimciNo, a.FilmAdi, b.Adi AS Oyuncu, c.Adi AS Yonetmen, d.Adi AS

Yapimci FROM Film a, Oyuncu b, Yonetmen c, Yapimci d, OyuncuFilmleri e WHERE a.FilmNo =

e.FilmNo AND e.OyuncuNo = b.OyuncuNo AND a.YonetmenNo = c.YonetmenNo AND a.YapimciNo =

d.YapimciNo ";

if (! StrAramaBosmu)

{

StrSorgu += "AND (b.Adi LIKE \'" + TxtAranan.Text +

"%\' OR b.Soyadi LIKE \'" + TxtAranan.Text + "%\') ";

}

}

else if (String.Compare(StrAramaKriteri, "Yonetmen", true) == 0)

{

Sonuc = 2;

StrSorgu = "SELECT DISTINCT a.FilmNo, b.OyuncuNo,

c.YonetmenNo, d.YapimciNo, a.FilmAdi, b.Adi AS Oyuncu, c.Adi AS Yonetmen, d.Adi AS

Yapimci FROM Film a, Oyuncu b, Yonetmen c, Yapimci d, OyuncuFilmleri e WHERE a.FilmNo =

e.FilmNo AND e.OyuncuNo = b.OyuncuNo AND a.YonetmenNo = c.YonetmenNo AND a.YapimciNo =

d.YapimciNo ";

if (! StrAramaBosmu)

{

StrSorgu += "AND (b.Adi LIKE \'" + TxtAranan.Text +

"%\' OR b.Soyadi LIKE \'" + TxtAranan.Text + "%\') ";

}

}

else if (String.Compare(StrAramaKriteri, "Yapimci", true) == 0)

{

Sonuc = 3;

StrSorgu = "SELECT DISTINCT a.FilmNo, b.OyuncuNo,

c.YonetmenNo, d.YapimciNo, a.FilmAdi, b.Adi AS Oyuncu, c.Adi AS Yonetmen, d.Adi AS

Yapimci FROM Film a, Oyuncu b, Yonetmen c, Yapimci d, OyuncuFilmleri e WHERE a.FilmNo =

e.FilmNo AND e.OyuncuNo = b.OyuncuNo AND a.YonetmenNo = c.YonetmenNo AND a.YapimciNo =

d.YapimciNo ";

if (! StrAramaBosmu)

{

StrSorgu += " AND d.Adi LIKE \'" + TxtAranan.Text +

"%\'";

}

}

else

{

Sonuc = - 1;

StrSorgu = "";

}

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SqlSelectCommand1;

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlDataAdapter1.SelectCommand.Connection = SqlConnection1;

SqlDataAdapter1.Fill(DsDataSet, "AramaSonucu");

LvwAramaSonucu.Items.Clear();

int IntKayitSayisi;

IntKayitSayisi = 0;

Page 19: C# projesi

foreach (DataRow DrRowPicker in

DsDataSet.Tables["AramaSonucu"].Rows)

{

String[] StrSearchRow = new String[] {

Convert.ToString(DrRowPicker[0]), Convert.ToString(DrRowPicker[4]),

Convert.ToString(DrRowPicker[5]), Convert.ToString(DrRowPicker[6]),

Convert.ToString(DrRowPicker[7]) };

LvwAramaSonucu.Items.Add(new ListViewItem(StrSearchRow));

IntKayitSayisi++;

}

int IntSnc;

IntSnc = Sonuc;

if (IntKayitSayisi == 0)

{

CmdSiparisVer.Enabled = false;

}

else

{

CmdSiparisVer.Enabled = true;

}

if (IntKayitSayisi == 0)

{

if (IntSnc == 0)

{

MessageBox.Show("Film bulunamadı.");

}

else if (IntSnc == 1)

{

MessageBox.Show("Bu aktöre ait herhangi bir film

bulunamadı.");

}

else if (IntSnc == 2)

{

MessageBox.Show("Bu yönetmene ait herhangi bir film

bulunamadı.");

}

else if (IntSnc == 3)

{

MessageBox.Show("Bu yapımcıya ait herhangi bir film

bulunamadı.");

}

}

SqlConnection1.Close();

SqlConnection1.Dispose();

SqlSelectCommand1.Dispose();

SqlDataAdapter1.Dispose();

}

private void FrmArama_Load(System.Object sender, System.EventArgs e)

{

CmbAramaKriteri.SelectedIndex = 0;

CmdSiparisVer.Enabled = false;

LvwAramaSonucu.Items.Clear();

LvwAramaSonucu.Columns.Clear();

ColumnHeader ColumnHeader1 = new ColumnHeader();

ColumnHeader ColumnHeader2 = new ColumnHeader();

ColumnHeader ColumnHeader3 = new ColumnHeader();

ColumnHeader ColumnHeader4 = new ColumnHeader();

ColumnHeader ColumnHeader5 = new ColumnHeader();

LvwAramaSonucu.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3,

ColumnHeader4, ColumnHeader5});

ColumnHeader1.Text = "Film No";

Page 20: C# projesi

ColumnHeader2.Text = "Film Adı";

ColumnHeader3.Text = "Oyuncu";

ColumnHeader4.Text = "Yönetmen No";

ColumnHeader5.Text = "Yapımcı No";

}

public void KayitNoAyarla(String KytNo)

{

StrKayitNo = KytNo;

}

}

}

Page 21: C# projesi

Kayıt Formuna İşlevsellik Kazandırmak

Giriş

Bu bölümde Müşteri modülünün Kayıt formuna işlevsellik kazandırmayı öğreneceksiniz.

Kayıt formunu veritabanına bağlamak için SQL Server .NET veri sağlayıcısına ihtiyacımız var. Bunun için aşağıdaki ifadeler Kayıt formuna ilave edilmelidir:

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

Ayrıca aşağıdaki değişken de Kayıt formunda tanımlanmalıdır:

public static FrmArama ObjArama;

Kayıt Formunun Tam Kod Dökümü

Liste: Kayıt Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication6

{

public partial class FrmKayit : System.Windows.Forms.Form

{

public static FrmArama ObjArama;

private void CmdGonder_Click(System.Object sender, System.EventArgs e)

{

String StrSorgu;

Page 22: C# projesi

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

if (TxtAdi.Text.Trim() == "")

{

MessageBox.Show("Müşteri Adı bilgisini giriniz.");

TxtAdi.Focus();

return;

}

if (TxtSoyadi.Text.Trim() == "")

{

MessageBox.Show("Müşteri Soyadı bilgisini giriniz.");

TxtSoyadi.Focus();

return;

}

if (TxtAdres.Text.Trim() == "")

{

MessageBox.Show("Adres bilgisini giriniz.");

TxtAdres.Focus();

return;

}

if (TxtKKNo.Text.Trim() == "")

{

MessageBox.Show("Kredi kartı numarasını giriniz.");

TxtTelefonNo.Focus();

return;

}

else if (TxtKKNo.Text.Trim().Length != 16)

{

MessageBox.Show("Geçersiz kredi kartı numarası. Lütfen kredi

kartı numarasını tekrar giriniz.");

TxtTelefonNo.Focus();

return;

}

if ((DateTime) DtpKKSKT.Value< DateTime.Now)

{

MessageBox.Show("Invalid date.");

DtpKKSKT.Focus();

return;

}

StrSorgu = "INSERT INTO Musteri (Adi, Soyadi, Adres, Ilce, Il,

PostaKodu, TelefonNo, EPosta, DogumTarihi, KrediKartiNo, KrediKartiSKT) VALUES (@Adi, " +

"@Soyadi, @Adres, @Ilce, @Il, @PostaKodu, @TelefonNo, @EPosta, @DogumTarihi,

@KrediKartiNo, @KrediKartiSKT)";

SqlCommand CmdString = new SqlCommand(StrSorgu, SqlConnection1);

SqlDataAdapter1.InsertCommand = CmdString;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 50, "Adi"));

SqlDataAdapter1.InsertCommand.Parameters[0].Value = TxtAdi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Soyadi", System.Data.SqlDbType.VarChar, 50, "Soyadi"));

SqlDataAdapter1.InsertCommand.Parameters[1].Value =

TxtSoyadi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Adres", System.Data.SqlDbType.VarChar, 25, "Adres"));

SqlDataAdapter1.InsertCommand.Parameters[2].Value = TxtAdres.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Ilce", System.Data.SqlDbType.VarChar, 25, "Ilce"));

SqlDataAdapter1.InsertCommand.Parameters[3].Value = TxtIlce.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Il", System.Data.SqlDbType.VarChar, 15, "Il"));

SqlDataAdapter1.InsertCommand.Parameters[4].Value = TxtIl.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@PostaKodu", System.Data.SqlDbType.VarChar, 7, "PostaKodu"));

SqlDataAdapter1.InsertCommand.Parameters[5].Value =

TxtPostaKodu.Text;

Page 23: C# projesi

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@TelefonNo", System.Data.SqlDbType.VarChar, 10, "TelefonNo"));

SqlDataAdapter1.InsertCommand.Parameters[6].Value =

TxtTelefonNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@EPosta", System.Data.SqlDbType.VarChar, 50, "EPosta"));

SqlDataAdapter1.InsertCommand.Parameters[7].Value =

TxtEPosta.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@DogumTarihi", System.Data.SqlDbType.DateTime, 8, "DogumTarihi"));

SqlDataAdapter1.InsertCommand.Parameters[8].Value = DtpDogumTarihi.Value;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@KrediKartiNo", System.Data.SqlDbType.VarChar, 16, "KrediKartiNo"));

SqlDataAdapter1.InsertCommand.Parameters[9].Value = TxtKKNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@KrediKartiSKT", System.Data.SqlDbType.DateTime, 8, "KrediKartiSKT"));

SqlDataAdapter1.InsertCommand.Parameters[10].Value = DtpKKSKT.Value;

long LMusteriNo;

try

{

SqlConnection1.Open();

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

CmdString.CommandText = "SELECT MAX(MusteriNo) From

Musteri";

LMusteriNo = Convert.ToInt64( CmdString.ExecuteScalar());

String StrMsj;

StrMsj = LMusteriNo.ToString();

MessageBox.Show("Müşteri kayıt numarası: " + StrMsj,

"Müşteri No", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

CmdString.Dispose();

SqlConnection1.Close();

SqlConnection1.Dispose();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt başarılı bir şekilde kaydedildi.", "Kayıt

eklendi", MessageBoxButtons.OK, MessageBoxIcon.Information);

ObjArama = new FrmArama();

ObjArama.KayitNoAyarla(LMusteriNo.ToString());

CmdString.Dispose();

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

this.Close();

}

private void CmdTemizle_Click(System.Object sender, System.EventArgs e)

{

Kontrolleri_Bosalt();

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

private void Kontrolleri_Bosalt()

{

TxtAdi.Text = "";

Page 24: C# projesi

TxtAdi.Focus(); //İlk kontrole odaklan

TxtSoyadi.Text = "";

TxtAdres.Text = "";

TxtIlce.Text = "";

TxtIl.Text = "";

TxtPostaKodu.Text = "";

TxtTelefonNo.Text = "";

TxtEPosta.Text = "";

TxtTelefonNo.Text = "";

DtpKKSKT.Text = "";

DtpDogumTarihi.Text = "";

}

}

}

Page 25: C# projesi

Sipariş Verme Formuna İşlevsellik Kazandırmak

Giriş

Bu bölümde Müşteri modülünün Sipariş Verme formuna işlevsellik kazandırmayı öğreneceksiniz.

Sipariş Verme formunu veritabanına bağlamak için SQL Server .NET veri sağlayıcısına ihtiyacımız var. Bunun için aşağıdaki ifadeler Sipariş Verme formuna ilave edilmelidir:

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

Ayrıca aşağıdaki değişkenler de Sipariş Verme formunda tanımlanmalıdır:

private static int IntSecilenSayisi;

//Seçili kayıtların sayısını tutar

private String StrKayitNo;

//Müşteri numarasını tutar

private static String[] SecilenFilmNoDizisi = new String[11];

//Seçili kayıtların Film No'larını tutar

Sipariş Verme Formunun Tam Kod Dökümü

Liste: Sipariş Verme Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication6

{

public partial class FrmSiparis : System.Windows.Forms.Form

{

public FrmSiparis()

{

Page 26: C# projesi

InitializeComponent();

}

private static int IntSecilenSayisi;

//Seçili kayıtların sayısını tutar

private String StrKayitNo;

//Müşteri numarasını tutar

private static String[] SecilenFilmNoDizisi = new String[11];

//Seçili kayıtların Film No'larını tutar

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

SqlCommand SqlSelectCommand1 = new SqlCommand();

public void SecilenFilmeriAyarla(String[] FilmNoDizisi, int

IntToplamSecilenSayisi)

{

int i;

IntSecilenSayisi = IntToplamSecilenSayisi;

for (i = 0; i <= IntToplamSecilenSayisi - 1; i++)

{

SecilenFilmNoDizisi[i] = FilmNoDizisi[i];

}

}

public void KayitNoAyarla(String KytNo)

{

StrKayitNo = KytNo;

}

private String OtomatikSiparisNoAl()

{

String StrSiparisNo="";

String returnValue;

String StrSelectString;

StrSelectString = "SELECT MAX(SiparisNo) FROM Siparisler";

SqlCommand SelectCmd = new SqlCommand(StrSelectString, SqlConnection1);

DataSet DsDataSet;

DsDataSet = new DataSet();

try

{

SqlDataAdapter1.SelectCommand = SelectCmd;

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "SiparisNo");

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source + ControlChars.Cr

+ "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State: " +

MyException.State.ToString() + ControlChars.Cr + "Class: " + MyException.Class.ToString()

+ ControlChars.Cr + "Server: " + MyException.Server + ControlChars.Cr + "Message: " +

MyException.Message + ControlChars.Cr + "Procedure: " + MyException.Procedure +

ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SelectCmd.Dispose();

SqlDataAdapter1.Dispose();

return "";

}

foreach (DataRow DrRowPicker in DsDataSet.Tables["SiparisNo"].Rows)

{

if (DrRowPicker.IsNull(0))

{

StrSiparisNo = "O0001";

Page 27: C# projesi

}

else

{

StrSiparisNo = Convert.ToString( DrRowPicker[0]);

}

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

returnValue = StrSiparisNo;

return returnValue;

}

private void FrmSiparis_Load(System.Object sender, System.EventArgs e)

{

DataSet DsDataSet;

String StrSorgu;

SqlCommand SelectCmd = new SqlCommand();

LvwSecim.Items.Clear();

LvwSecim.Columns.Clear();

ColumnHeader ColumnHeader1 = new ColumnHeader();

ColumnHeader ColumnHeader2 = new ColumnHeader();

ColumnHeader ColumnHeader3 = new ColumnHeader();

ColumnHeader ColumnHeader4 = new ColumnHeader();

ColumnHeader ColumnHeader5 = new ColumnHeader();

ColumnHeader ColumnHeader6 = new ColumnHeader();

LvwSecim.Columns.AddRange(new System.Windows.Forms.ColumnHeader[]

{ColumnHeader1, ColumnHeader2, ColumnHeader3, ColumnHeader4, ColumnHeader5,

ColumnHeader6});

ColumnHeader1.Text = "Film No";

ColumnHeader2.Text = "Film Adı";

ColumnHeader3.Text = "Oyuncu";

ColumnHeader4.Text = "Yönetmen No";

ColumnHeader5.Text = "Yapımcı No";

ColumnHeader6.Text = "Fiyat";

if (IntSecilenSayisi < 1)

{

this.Close();

}

int i;

String StrGecici="";

for (i = 0; i <= IntSecilenSayisi - 1; i++)

{

StrGecici += "\'";

StrGecici += SecilenFilmNoDizisi[i];

StrGecici += "\'";

if (i < IntSecilenSayisi - 1)

{

StrGecici += ",";

}

}

StrSorgu = "SELECT DISTINCT a.FilmNo, a.FilmAdi, b.Adi AS Oyuncu, c.Adi

AS Yonetmen, d.Adi AS Yapimci, f.Fiyat as Fiyat FROM Film a, Oyuncu b, Yonetmen c,

Yapimci d, OyuncuFilmleri e, Video f WHERE a.FilmNo = e.FilmNo AND e.OyuncuNo =

b.OyuncuNo AND a.YonetmenNo = c.YonetmenNo AND a.YapimciNo = d.YapimciNo AND a.FilmNo =

f.FilmNo AND a.FilmNo in (" + StrGecici + ")";

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd;

SqlDataAdapter1.SelectCommand.Connection = SqlConnection1;

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlDataAdapter1.Fill(DsDataSet, "AramaSonucu2");

Page 28: C# projesi

LvwSecim.Items.Clear();

double DblToplamTutar=0.0;

foreach (DataRow DrRowPicker in DsDataSet.Tables["AramaSonucu2"].Rows)

{

String[] StrSearchRow = new String[] {

Convert.ToString((DrRowPicker[0])), Convert.ToString( (DrRowPicker[1])),

Convert.ToString((DrRowPicker[2])), Convert.ToString((DrRowPicker[3])),

Convert.ToString((DrRowPicker[4])), Convert.ToString( DrRowPicker[5])};

LvwSecim.Items.Add(new ListViewItem(StrSearchRow));

DblToplamTutar += System.Convert.ToDouble(DrRowPicker[5]);

}

TxtToplamTutar.Text = Convert.ToString( DblToplamTutar);

StrSorgu = "SELECT KrediKartiNo, KrediKartiSKT FROM Musteri WHERE

MusteriNo = \'" + StrKayitNo + "\'";

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlDataAdapter1.Fill(DsDataSet, "KrediKartiBilgisi");

foreach (DataRow DrRowPicker2 in

DsDataSet.Tables["KrediKartiBilgisi"].Rows)

{

TxtKKNo.Text = Convert.ToString(DrRowPicker2[0]);

TxtKKSKT.Text = Convert.ToString( DrRowPicker2[1]);

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

private void CmdSiparisVer_Click(System.Object sender, System.EventArgs e)

{

String StrSorgu;

String StrSiparisNo;

String StrGecici;

int IntSiparisNo;

StrSiparisNo = OtomatikSiparisNoAl();

StrSiparisNo = StrSiparisNo.Substring(1, 4);

IntSiparisNo = int.Parse(StrSiparisNo)+ 1;

StrGecici = IntSiparisNo.ToString();

StrSiparisNo = "\'";

StrSiparisNo += "O";

if (StrGecici.Length == 1)

{

StrSiparisNo += "000";

}

else if (StrGecici.Length == 2)

{

StrSiparisNo += "00";

}

else if (StrGecici.Length == 3)

{

StrSiparisNo += "0";

}

StrSiparisNo += StrGecici;

StrSiparisNo += "\'";

int i;

StrGecici = "";

for (i = 0; i <= IntSecilenSayisi - 1; i++)

{

StrGecici += "\'";

StrGecici += SecilenFilmNoDizisi[i];

StrGecici += "\'";

if (i < IntSecilenSayisi - 1)

{

StrGecici += ",";

Page 29: C# projesi

}

}

String StrSelectString;

StrSelectString = "SELECT MAX(VideoNo), COUNT(FilmNo) From Video WHERE

FilmNo IN (" + StrGecici + ") GROUP BY FilmNo";

DataSet DsDataSet;

DsDataSet = new DataSet();

SqlCommand SelectCmd = new SqlCommand(StrSelectString, SqlConnection1);

try

{

SqlDataAdapter1.SelectCommand = SelectCmd;

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "VideoBilgisi");

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source + ControlChars.Cr

+ "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State: " +

MyException.State.ToString() + ControlChars.Cr + "Class: " + MyException.Class.ToString()

+ ControlChars.Cr + "Server: " + MyException.Server + ControlChars.Cr + "Message: " +

MyException.Message + ControlChars.Cr + "Procedure: " + MyException.Procedure +

ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SelectCmd.Dispose();

SqlDataAdapter1.Dispose();

return;

}

String StrVideoListesi = "";

String StrFilmSayisi="";

int NToplamSayi;

int NSayi;

NSayi = 0;

NToplamSayi = DsDataSet.Tables["VideoBilgisi"].Rows.Count;

String[] VideoListeDizisi = new String[11];

foreach (DataRow DrRowPicker in DsDataSet.Tables["VideoBilgisi"].Rows)

{

StrVideoListesi += "\'";

StrVideoListesi += DrRowPicker[0].ToString();

StrVideoListesi += "\'";

VideoListeDizisi[NSayi] = StrVideoListesi;

NSayi++;

StrFilmSayisi = Convert.ToString( DrRowPicker[1]);

}

String StrToplamSiparisDegeri;

StrSorgu = "SELECT SUM(Fiyat) FROM Video WHERE VideoNo IN (" +

StrVideoListesi + ")";

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlDataAdapter1.Fill(DsDataSet, "SiparisTutari");

StrToplamSiparisDegeri =

Convert.ToString(DsDataSet.Tables["SiparisTutari"].Rows[0][0]);

String StrToplamMiktar;

StrSorgu = "SELECT COUNT(VideoNo) FROM Video WHERE VideoNo IN (" +

StrVideoListesi + ")";

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlDataAdapter1.Fill(DsDataSet, "ToplamMiktar");

StrToplamMiktar = Convert.ToString(

DsDataSet.Tables["ToplamMiktar"].Rows[0][0]);

String StrVideoNo;

int j;

int IntSiparisMiktari;

Page 30: C# projesi

StrToplamSiparisDegeri = StrToplamSiparisDegeri.Replace(',', '.');

StrSorgu = "INSERT INTO Siparisler (SiparisNo, SiparisTarihi, MusteriNo,

ToplamMiktar, SiparisTutari) VALUES (" + StrSiparisNo + ", @SiparisTarihi, @MusteriNo," +

StrToplamMiktar + "," + StrToplamSiparisDegeri + "); SELECT SiparisNo, SiparisTarihi,

MusteriNo, SiparisTutari FROM Siparisler WHERE SiparisNo = " + StrSiparisNo;

SqlCommand InsertCmd = new SqlCommand(StrSorgu, SqlConnection1);

SqlDataAdapter1.InsertCommand = InsertCmd;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@SiparisTarihi", System.Data.SqlDbType.DateTime, 8, "SiparisTarihi"));

SqlDataAdapter1.InsertCommand.Parameters[0].Value = DateTime.Now;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@MusteriNo", System.Data.SqlDbType.SmallInt, 2, "MusteriNo"));

SqlDataAdapter1.InsertCommand.Parameters[1].Value = StrKayitNo;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@SiparisTutari", System.Data.SqlDbType.Money, 8, "SiparisTutari"));

SqlDataAdapter1.InsertCommand.Parameters[2].Value =

System.Convert.ToDouble(TxtToplamTutar.Text);

try

{

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

for (j = 0; j <= NSayi - 1; j++)

{

StrVideoNo = VideoListeDizisi[j];

IntSiparisMiktari = int.Parse( StrFilmSayisi);

SqlDataAdapter1.InsertCommand.CommandText = "INSERT INTO

SiparisAyrinti (SiparisNo, VideoNo, Miktar) VALUES (" + StrSiparisNo + "," + StrVideoNo +

", 1)";

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

}

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source + ControlChars.Cr

+ "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State: " +

MyException.State.ToString() + ControlChars.Cr + "Class: " + MyException.Class.ToString()

+ ControlChars.Cr + "Server: " + MyException.Server + ControlChars.Cr + "Message: " +

MyException.Message + ControlChars.Cr + "Procedure: " + MyException.Procedure +

ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

SqlConnection1.Close();

SelectCmd.Dispose();

SqlDataAdapter1.Dispose();

this.Close();

MessageBox.Show("Siparişiniz 5 iş günü içinde teslim edilecektir.

Bizimle alışveriş yaptığınız için teşekkür ederiz.", "Sipariş İletisi",

MessageBoxButtons.OK);

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

}

}

Page 31: C# projesi

Yönetici Modülünün Arayüzünü Tasarlamak

Giriş

Video marketi uygulamasının Yönetici modülü yöneticiye veritabanını yönetmesine yardım eder. Yönetici modülünü kullanarak yönetici Filmler veritabanına kayıt ekleyebilir, kayıtları düzenleyip silebilir. Ek olarak yönetici raporlar da oluşturabilir.

Video marketi uygulamasının Yönetici modülü aşağıdaki formlardan oluşur:

Ana form

Oyuncu Kayıt formu

Yönetmen Kayıt formu

Yapımcı Kayıt formu

Video Kayıt formu

Film Kayıt formu

Müşteri Kayıt formu

Güncelle/Sil formu

Raporlar formu

Ana Form

İsminden de anlaşılacağı üzere, Ana form Yönetici modülünü başlatır. Ana form aynı zamanda yöneticinin aşağıdaki işlemleri gerçekleştirebileceği merkezdir:

Veritabanındaki tabloları düzenlemek ve güncellemek

Raporlar oluşturmak

Şekil: Ana form

Ana formun özellikleri:

Özellik Değer

Name FrmAnaYonetim

Text FilmMarketi Yönetim

Size 300, 208

Şekilde de görüldüğü gibi Ana form bir menü çubuğuna sahip. Menü çubuğu İşlemler, Rapor Oluştur ve Çıkış menülerini görüntüler. Aşağıdaki kısım Ana formdaki menüler hakkında bilgi verir.

Page 32: C# projesi

İşlemler menüsü yöneticiye veritabanındaki tablolara kayıt eklemek, düzenlemek ve silmek için komutlar sağlar.

Şekil: İşlemler menüsünün komutları

Şekilde görüldüğü gibi, İşlemler menüsü iki komut içerir, Ekle ve Güncelle/Sil. Ayrıca Ekle menüsüyle alakalı bir alt menünün de bulunduğuna dikkat edin. Yönetici Ekle alt menüsünden bir komut seçtiğinde, seçilen komutla ilgili form görüntülenir. Örneğin yönetici Ekle menüsünden Oyuncu komutunu seçtiğinde Oyuncu Bilgileri Girişi formu görüntülenir. Böylece Ekle menüsündeki komutlar yöneticinin veritabanındaki tablolara kayıt ekleyebilmesini sağlar. Yönetici veritabanındaki tabloları güncellemek veya silmek için Güncelle/Sil komutunu kullanabilir.

Ana formdaki menü çubuğu ayrıca Rapor Oluştur menüsünü de içerir.

Şekil: Rapor Oluştur menüsündeki komutlar

Rapor Oluştur menüsündeki komutlar yöneticinin raporlar oluşturmasına imkân verir. Bu komutları kullanarak yönetici günlük satışlar, beğenilen (en çok talep edilen) filmler ve müşteri ayrıntılarıyla ilgili raporlar oluşturabilir.

Ana form ayrıca Çıkış menüsü de içerir. Bu menü yönetici modülünü kapatmak için kullanılabilir.

Değişik menülerdeki komutlar hakkında bilgi sahibi olduktan sonra artık menü oluşturmayı öğreneceksiniz. Bunun için Araç kutusundaki All Windows Forms sekmesinden form üzerine MainMenu kontrolü taşımalısınız.

Forma bir MainMenu kontrolü eklediğinizde form üzerinde bir menü çubuğu görüntülenir. Menü çubuğuna tıklayınca "Type Here" yazan bir kutucuk belirir. Menüleri ve menü öğelerini tanımlamak için uygum kutulara menü ve öğelerinin isimlerini yazmalısınız.

Page 33: C# projesi

Şekil: Menü oluşturma

Tablo: Menü özellikleri

Kontrol Özellik Değer

Menu 1 Name MmnuIslemler

Menu 1 Text İşlemler

Menu 2 Name MmnuRaporlar

Menu 2 Text Rapor Oluştur

Menu 3 Name MmnuCikis

Menu 3 Text Çıkış

Tablo: Menü elemanlarının özellikleri

Kontrol Üst Menünün Adı Özellik Değer

Menu Item 1 MmnuIslemler Name MitmEkle

Menu Item 1 MmnuIslemler Text Ekle

Menu Item 2 MmnuIslemler Name MitmGuncelleSil

Menu Item 2 MmnuIslemler Text Güncelle/Sil

Menu Item 3 MmnuRaporlar Name MitmGunlukSatislar

Menu Item 3 MmnuRaporlar Text Günlük Satışlar

Menu Item 4 MmnuRaporlar Name MitmBegenilenFilmler

Menu Item 4 MmnuRaporlar Text Beğenilen Filmler

Menu Item 5 MmnuRaporlar Name MitmMusteriAyrinti

Menu Item 5 MmnuRaporlar Text Müşteri Ayrıntıları

Şekilden de görüldüğü gibi Ekle menüsü bir alt menü içerir. Aşağıdaki tablo MitmEkle menüsünün alt menü

elemanlarına ait özellikleri görüntüler.

Page 34: C# projesi

Tablo: MitmEkle menüsündeki alt menü elemanlarının özellikleri.

Kontrol Özellik Değer

Menu Item 1 Name MitmOyuncu

Menu Item 1 Text Oyuncu

Menu Item 2 Name MitmYonetmen

Menu Item 2 Text Yönetmen

Menu Item 3 Name MitmYapimci

Menu Item 3 Text Yapımcı

Menu Item 4 Name MitmVideo

Menu Item 4 Text Video

Menu Item 5 Name MitmFilm

Menu Item 5 Text Film

Menu Item 6 Name MitmMusteri

Menu Item 6 Text Müşteri

Page 35: C# projesi

Oyuncu Bilgileri Girişi Formu

Oyuncu Bilgileri Girişi formu yöneticinin Oyuncular tablosuna kayıt yapabilmesini sağlar.

Oyuncu Bilgileri Girişi formunun özellikleri:

Özellik Değer

Name FrmOyuncuKayit

Text Oyuncu Bilgileri Girişi

Size 240, 240

Oyuncu Bilgileri Girişi formunda beş adet etiket ve dört adet metin kutusu var.

Tablo: Etiketlerin özellikleri

Kontrol Özellik Değer

Label 1 Name LblOyuncuNo

Label 1 Text Oyuncu No:

Label 2 Name LblAdi

Label 2 Text Adı:

Label 3 Name LblSoyadi

Label 3 Text Soyadı:

Label 4 Name LblDogumTarihi

Label 4 Text Doğum Tarihi:

Label 5 Name LblOzgecmis

Label 5 Text Özgeçmiş:

Tablo: Metin kutularının özellikleri

Kontrol Özellik Değer

Text Box 1 Name txtOyuncuNo

Text Box 2 Name txtAdi

Page 36: C# projesi

Text Box 3 Name txtSoyadi

Text Box 4 Name txtOzgecmis

Etiket ve metin kutularına ilave olarak Oyuncu Bilgileri Girişi formu bir adet tarih kontrolü içerir. Bu Doğum Tarihi etiketiyle ilişkilidir. Doğum Tarihi etiketiyle ilişkili tarih kontrolünün Name özelliği DtpDogumTarihi olarak ayarlanır.

Kayıt formu aynı zamanda iki tane de buton içerir.

Tablo: Butonların özellikleri

Kontrol Özellik Değer

Button 1 Name CmdGonder

Button 1 Text Gönder

Button 2 Name CmdIptal

Button 2 Text İptal

Page 37: C# projesi

Yönetmen Bilgileri Girişi Formu

Yönetmen Bilgileri Girişi formu yöneticinin Yönetmen tablosuna kayıt yapabilmesini sağlar.

Yönetmen Bilgileri Girişi formunun özellikleri:

Özellik Değer

Name FrmYonetmenKayit

Text Yönetmen Bilgileri Girişi

Size 240, 240

Yönetmen Bilgileri Girişi formunda beş adet etiket ve dört adet metin kutusu var.

Tablo: Etiketlerin özellikleri

Kontrol Özellik Değer

Label 1 Name LblYonetmenNo

Label 1 Text Yönetmen No:

Label 2 Name LblAdi

Label 2 Text Adı:

Label 3 Name LblSoyadi

Label 3 Text Soyadı:

Label 4 Name LblDogumTarihi

Label 4 Text Doğum Tarihi:

Label 5 Name LblOzgecmis

Label 5 Text Özgeçmiş:

Tablo: Metin kutularının özellikleri

Kontrol Özellik Değer

Text Box 1 Name TxtYonetmenNo

Text Box 2 Name TxtAdi

Page 38: C# projesi

Text Box 3 Name TxtSoyadi

Text Box 4 Name TxtOzgecmis

Etiket ve metin kutularına ilave olarak Yönetmen Bilgileri Girişi formu bir adet tarih kontrolü içerir. Bu Doğum Tarihi etiketiyle ilişkilidir. Doğum Tarihi etiketiyle ilişkili tarih kontrolünün Name özelliği DtpDogumTarihi olarak ayarlanır.

Kayıt formu aynı zamanda iki tane de buton içerir.

Tablo: Butonların özellikleri

Kontrol Özellik Değer

Button 1 Name CmdGonder

Button 1 Text Gönder

Button 2 Name CmdIptal

Button 2 Text İptal

Page 39: C# projesi

Yapımcı Bilgileri Girişi Formu

Yapımcı Bilgileri Girişi formu yöneticinin Yapımcı tablosuna kayıt yapabilmesini sağlar.

Yapımcı Bilgileri Girişi formunun özellikleri:

Özellik Değer

Name FrmYapimciKayit

Text Yapımcı Bilgileri Girişi

Size 240, 144

Yapımcı Bilgileri Girişi formunda ikişer adet etiket ve metin kutusu var.

Tablo: Etiketlerin özellikleri

Kontrol Özellik Değer

Label 1 Name LblYapimciNo

Label 1 Text Yapımcı No:

Label 2 Name LblAdi

Label 2 Text Adı:

Tablo: Metin kutularının özellikleri

Kontrol Özellik Değer

Text Box 1 Name TxtYapimciNo

Text Box 2 Name TxtAdi

Kayıt formu aynı zamanda iki tane de buton içerir.

Tablo: Butonların özellikleri

Kontrol Özellik Değer

Button 1 Name CmdGonder

Button 1 Text Gönder

Button 2 Name CmdIptal

Button 2 Text İptal

Page 40: C# projesi

Video Bilgileri Girişi Formu

Video Bilgileri Girişi formu yöneticinin Video tablosuna kayıt yapabilmesini sağlar.

Video Bilgileri Girişi formunun özellikleri:

Özellik Değer

Name FrmVideoKayit

Text Video Bilgileri Girişi

Size 224, 208

Video Bilgileri Girişi formunda dörder adet etiket ve metin kutusu var.

Tablo: Etiketlerin özellikleri

Kontrol Özellik Değer

Label 1 Name LblVideoNo

Label 1 Text Video No:

Label 2 Name LblFilmNo

Label 2 Text Film No:

Label 3 Name LblFormat

Label 3 Text Format:

Label 4 Name LblFiyat

Label 4 Text Fiyat:

Tablo: Metin kutularının özellikleri

Kontrol Özellik Değer

Text Box 1 Name TxtVideoNo

Text Box 2 Name TxtFilmNo

Text Box 3 Name TxtFormat

Text Box 4 Name TxtFiyat

Kayıt formu aynı zamanda iki tane de buton içerir.

Page 41: C# projesi

Tablo: Butonların özellikleri

Kontrol Özellik Değer

Button 1 Name CmdGonder

Button 1 Text Gönder

Button 2 Name CmdIptal

Button 2 Text İptal

Page 42: C# projesi

Film Bilgileri Girişi Formu

Film Bilgileri Girişi formu yöneticinin Film tablosuna kayıt yapabilmesini sağlar.

Film Bilgileri Girişi formunun özellikleri:

Özellik Değer

Name FrmFilmKayit

Text Film Bilgileri Girişi

Size 256, 328

Film Bilgileri Girişi formunda sekizer adet etiket ve metin kutusu var.

Tablo: Etiketlerin özellikleri

Kontrol Özellik Değer

Label 1 Name LblFilmNo

Label 1 Text Film No:

Label 2 Name LblFilmAdi

Label 2 Text Film Adı:

Label 3 Name LblYonetmenNo

Label 3 Text Yönetmen No:

Label 4 Name LblYapimciNo

Label 4 Text Yapımcı No:

Label 5 Name LblSure

Label 5 Text Süre:

Label 6 Name LblAciklama

Label 6 Text Açıklama:

Page 43: C# projesi

Label 7 Name LblKategori

Label 7 Text Kategori:

Label 8 Name LblYapimYili

Label 8 Text Yapım Yılı:

Tablo: Metin kutularının özellikleri

Kontrol Özellik Değer

Text Box 1 Name TxtFilmNo

Text Box 2 Name TxtFilmAdi

Text Box 3 Name TxtYonetmenNo

Text Box 4 Name TxtYapimciNo

Text Box 5 Name TxtSure

Text Box 6 Name TxtAciklama

Text Box 7 Name TxtKategori

Text Box 8 Name TxtYapimYili

Kayıt formu aynı zamanda iki tane de buton içerir.

Tablo: Butonların özellikleri

Kontrol Özellik Değer

Button 1 Name CmdGonder

Button 1 Text Gönder

Button 2 Name CmdIptal

Button 2 Text İptal

Page 44: C# projesi

Müşteri Bilgileri Girişi Formu

Müşteri Bilgileri Girişi formu, yönetici Ekle menüsünde Müşteri Bilgileri Girişi komutuna tıkladığında görüntülenir.

Müşteri Bilgileri Girişi Formunun Özellikleri:

Özellik Değer

Name FrmMusteriKayit

Text Müşteri Bilgileri Girişi

Size 392, 376

Müşteri Bilgileri Girişi formu birçok metin kutusu ve etiket içerir.

Tablo: Etiketlerin Özellikleri

Kontrol Özellik Değer

Label 1 Name LblAdi

Label 1 Text Adı:

Label 2 Name LblSoyadi

Label 2 Text Soyadı:

Label 3 Name LblAdres

Label 3 Text Adres:

Label 4 Name LblIlce

Label 4 Text İlçe:

Label 5 Name LblIl

Label 5 Text İl:

Page 45: C# projesi

Label 6 Name LblPostaKodu

Label 6 Text Posta Kodu:

Label 7 Name LblTelefonNo

Label 7 Text Telefon No:

Label 8 Name LblEPosta

Label 8 Text E-Posta:

Label 9 Name LblKKNo

Label 9 Text Kredi Kartı Numarası:

Label 10 Name LblKKSKT

Label 10 Text Son Kullanma Tarihi:

Label 11 Name LblDogumTarihi

Label 11 Text Doğ.Tarihi:

Tablo: Metin Kutularının Özellikleri

Kontrol Özellik Değer

Text Box 1 Name TxtAdi

Text Box 2 Name TxtSoyadi

Text Box 3 Name TxtAdres

Text Box 4 Name TxtIlce

Text Box 5 Name TxtIl

Text Box 6 Name TxtPostaKodu

Text Box 7 Name TxtTelefonNo

Text Box 8 Name TxtEPosta

Text Box 9 Name TxtKKNo

Etiket ve metin kutularına ilave olarak Müşteri Bilgileri Girişi formu iki adet tarih kontrolü içerir. Biri Son Kullanma Tarihi, diğeri ise Doğum Tarihi etiketiyle ilişkilidir. Son Kullanma Tarihi etiketiyle ilişkili tarih kontrolünün Name özelliği DtpKKSKT, Doğum Tarihi etiketiyle ilişkili tarih kontrolünün Name özelliği ise DtpDogumTarihi olarak ayarlanır.

Müşteri Bilgileri Girişi formu aynı zamanda iki tane de buton içerir.

Tablo: Butonların Özellikleri

Kontrol Özellik Değer

Button 1 Name CmdGonder

Button 1 Text Gönder

Button 2 Name CmdIptal

Button 2 Text İptal

Yönetici, Gönder butonu vasıtasıyla Müşteri Bilgileri Girişi formuna girmiş olduğu bilgileri veritabanına kaydedebilir. Yönetici, İptal butonu ile Müşteri Bilgileri Girişi formunu kapatabilir.

Page 46: C# projesi

Güncelle/Sil Formu

Kayıt girişinin yanı sıra, Yönetici modülü yöneticinin değişik tablolardaki kayıtları düzenlemesine de olanak verir. Yönetici modülü, yöneticiye tablolardaki kayıtları güncelleyip silebilmesi için Güncelle/Sil formunu sunar.

Güncelle/Sil formunun özellikleri:

Özellik Değer

Name FrmGuncelleSil

Text Güncelle/Sil

Size 488, 320

Güncelle/Sil formunda dört adet etiket mevcut.

Tablo: Etiketlerin özellikleri

Kontrol Özellik Değer

Label 1 Name LblAramaYeri

Label 1 Text Arama Yeri:

Label 2 Name LblAramaKriteri

Label 2 Text Arama Kriteri:

Label 3 Name LblArananIfade

Label 3 Text Aranan İfade:

Label 4 Name LblAramaSonucu

Label 4 Text Arama Sonucu:

Güncelle/Sil formunda ayrıca bir metin kutusuyla iki tane açılır liste kutusu da var.

Tablo: Metin ve açılır liste kutularının özellikleri

Kontrol Özellik Değer

Page 47: C# projesi

Text Box 1 Name TxtArananIfade

Combo Box 1 Name CmbAramaYeri

Combo Box 1 DropDownStyle DropDownList

Combo Box 2 Name CmbAramaKriteri

Combo Box 2 DropDownStyle DropDownList

Bu özelliklere ek olarak CmbAramaYeri açılan kutunun Items özelliğini de ayarlamalıyız. Items özelliği seçildiğinde

(Collection) değerinin yanında … butonu görüntülenir. Açılan kutuya değer eklemek için bu butona tıklanmalıdır.

Butona tıklayınca, String Collection Editor diyalog kutusu görüntülenir. Bu diyalog kutusu vasıtasıyla açılan kutuya değer ekleyebilirsiniz.

CmbAramaKriteri açılır liste kutusunun Columns özelliğini belirtmeye gerek yok. Çünkü burada görüntülenecek

değerler CmbAramaKriteri açılır liste kutusunda seçilen değere bağlıdır. Bu yüzden buraya tasarım aşamasında değer

girmek yerine, bu değerleri çalışma anında oluşturmalıyız. Bu da program kodlarıyla yapılacaktır.

Açılır liste kutularının yanı sıra Güncelle/Sil formu bir de liste görünümü (ListView) nesnesi içerir. Liste görünümü kontrolünün özelliklerine atanacak değerler aşağıda verilmiştir:

Özellik Değer

Name LvwAramaSonucu

View Details

FullRowSelect True

Gridlines True

Liste görünümü kontrolünün Columns özelliğini belirtmeye gerek yoktur. Çünkü burada görüntülenecek sütün başlıkları

CmbAramaYeri açılır liste kutusunda seçilen değere bağlı olacaktır. Örneğin kullanıcı CmbAramaYeri açılır liste

kutusunda Oyuncu seçeneğini seçtiğinde LvwAramaSonucu kontrolünde bu tabloya ait sütün başlıkları görüntülenecektir.

Bu yüzden, CmbAramaKriteri açılır liste kutusunda olduğu gibi, sütün başlıkları da programla oluşturulmalıdır.

Güncelle/Sil formunda beş adet de buton var.

Tablo: Butonların özellikleri

Kontrol Özellik Değer

Button 1 Name CmdAra

Button 1 Text Ara

Button 2 Name CmdGuncelle

Page 48: C# projesi

Button 2 Text Güncelle

Button 3 Name CmdSil

Button 3 Text Sil

Button 4 Name CmdTemizle

Button 4 Text Temizle

Button 5 Name CmdIptal

Button 5 Text İptal

İsminden de anlaşılacağı üzere, Ara butonu yöneticinin Güncelle/Sil formunda belirtilen ölçüte göre veritabanında arama yapmasını sağlar. Arama sonucu liste görünümü kontrolünde görüntülenir.

Güncelle butonu, yöneticinin kayıtları düzenlemesini sağlar. Bir kaydı düzenlemek için, yönetici liste görünümünden kaydı seçip Güncelle butonuna basabilir. Yönetici, Güncelle butonuna basınca, seçilen kayıt ilgili bilgi girişi formunda görüntülenir. Yönetici seçili kayıtta gerekli değişiklikleri yaptıktan sonra Gönder butonuna basabilir.

Ayrıca yönetici seçili kaydı veritabanından silmek için Sil butonunu kullanabilir. Sil butonuna basınca bir onay ileti kutusu görüntülenir.

Yönetici, Temizle butonuyla liste görünümünü boşaltabilir; İptal butonuyla Güncelle/Sil formunu kapatılabilir.

Page 49: C# projesi

Raporlar Formu

Raporlar formu çeşitli raporlar görüntüler. Üç değişik Rapor formu var: Günlük Satışlar, Beğenilen Filmler ve Müşteri Ayrıntıları. Rapor formları yönetici Ana formda Rapor Oluştur menüsünden bir komut seçtiğinde görüntülenir.

Şekil: Günlük Satış Raporu formu

Raporlar formunun özellikleri:

Özellik Değer

Name FrmRaporlar

Text Raporlar

Size 472, 430

Şekilde de görüldüğü üzere, Raporlar formu bir menü kontrolü içerir. Raporlar formuna bir menü kontrolü eklemek için Araç kutusundaki All Windows Forms sekmesinden MainMenu kontrolünü form üzerine sürükleyin. MainMenu kontrolünü ekledikten sonra buna Çıkış menüsünü ekleyin. Çıkış menüsünün özellikleri aşağıda verilmiştir:

Özellik Değer

Name MmnuCikis

Text Çıkış

Raporlar formunda ayrıca bir tane de liste görünümü nesnesi mevcut. Liste görünümü kontrolünün özellikleri:

Özellik Değer

Name LvwRapor

View Details

FullRowSelect True

Gridlines True

Page 50: C# projesi

Raporlar formundaki LvwRapor kontrolünün Columns özelliğini tasarım aşamasında oluşturmaya gerek yoktur. Çünkü

buradaki alan başlıkları Ana formda yöneticinin seçtiği komuta bağlı olacaktır. Bu yüzden bu işlem program kodlarıyla çalışma anında yapılmalıdır.

Menü ve liste görünümü nesnelerine ilave olarak Raporlar formu bir etiket ve metin kutusu da içerir. Etiket kontrolünün özellikleri:

Özellik Değer

Name LblToplamSatisTutari

Text Toplam Satış:

Metin kutusunun özellikleri:

Özellik Değer

Name TxtToplamSatisTutari

Page 51: C# projesi

Ana Forma İşlevsellik Kazandırmak

Giriş

Bu bölümde Yönetici modülünün Ana formuna işlevsellik kazandırmayı öğreneceğiz.

Olay prosedürlerini oluşturmadan önce Ana formda aşağıdaki değişkenleri tanımlamalısınız:

'Diğer formları açmak için gerekli nesne tanımlamaları

Public Shared ObjOyuncu As FrmOyuncuKayit

Public Shared ObjYonetmen As FrmYonetmenKayit

Public Shared ObjYapimci As FrmYapimciKayit

Public Shared ObjFilm As FrmFilmKayit

Public Shared ObjVideo As FrmVideoKayit

Public Shared ObjMusteri As FrmMusteriKayit

Public Shared ObjGuncelleSil As FrmGuncelleSil

Public Shared ObjRapor As FrmRaporlar

Ana Formun Tam Kod Dökümü

Liste: Ana Formun Kodu

namespace WindowsApplication9

{

public partial class FrmAnaYonetim : System.Windows.Forms.Form

{

public static FrmOyuncuKayit ObjOyuncu;

public static FrmYonetmenKayit ObjYonetmen;

public static FrmYapimciKayit ObjYapimci;

public static FrmFilmKayit ObjFilm;

public static FrmVideoKayit ObjVideo;

public static FrmMusteriKayit ObjMusteri;

public static FrmGuncelleSil ObjGuncelleSil;

public static FrmRaporlar ObjRapor;

private void MitmOyuncu_Click(System.Object sender, System.EventArgs e)

{

ObjOyuncu = new FrmOyuncuKayit();

ObjOyuncu.Show();

}

private void MitmYonetmen_Click(System.Object sender, System.EventArgs e)

{

ObjYonetmen = new FrmYonetmenKayit();

ObjYonetmen.Show();

}

private void MitmYapimci_Click(System.Object sender, System.EventArgs e)

{

Page 52: C# projesi

ObjYapimci = new FrmYapimciKayit();

ObjYapimci.Show();

}

private void MitmVideo_Click(System.Object sender, System.EventArgs e)

{

ObjVideo = new FrmVideoKayit();

ObjVideo.Show();

}

private void MitmFilm_Click(System.Object sender, System.EventArgs e)

{

ObjFilm = new FrmFilmKayit();

ObjFilm.Show();

}

private void MitmMusteri_Click(System.Object sender, System.EventArgs e)

{

ObjMusteri = new FrmMusteriKayit();

ObjMusteri.Show();

}

private void MitmGuncelleSil_Click(System.Object sender, System.EventArgs e)

{

ObjGuncelleSil = new FrmGuncelleSil();

ObjGuncelleSil.Show();

}

private void MitmGunlukSatislar_Click(System.Object sender, System.EventArgs

e)

{

ObjRapor = new FrmRaporlar();

FrmRaporlar.IntRaporTipi = 0;

ObjRapor.Show();

}

private void MitmBegenilenFilmler_Click(System.Object sender,

System.EventArgs e)

{

ObjRapor = new FrmRaporlar();

FrmRaporlar.IntRaporTipi = 1;

ObjRapor.Show();

}

private void MitmMusteriAyrinti_Click(System.Object sender, System.EventArgs

e)

{

ObjRapor = new FrmRaporlar();

FrmRaporlar.IntRaporTipi = 2;

ObjRapor.Show();

}

private void MmnuCikis_Click(System.Object sender, System.EventArgs e)

{

Close();

}

}

}

Page 53: C# projesi

Güncelle/Sil Formuna İşlevsellik Kazandırmak

Güncelle/Sil formuyla veritabanına bağlanabilmek için System.Data.SqlClient isim alanı (namespace) forma eklenmelidir. System.Data.SqlClient isim alanını forma eklemek için aşağıdaki kod kullanılır:

using System.Data.SqlClient;

'SQL Server. NET veri sağlayıcısı tarafından kullanılan komutları içerir

Buna ilave olarak forma aşağıdaki ifadeler de ilave edilmelidir:

using System.Data;

' ADO.NET mimarisini oluşturan ifadeleri içerir

using System;

'String’lerle çalışmak için gereklidir

using System.Data.OleDb;

' OLE DB. NET veri sağlayıcısı tarafından kullanılan komutları içerir

using System.Data.SqlClient;

' SQL Server içinde kullanılan veri tiplerini tanımlar

Güncelle/Sil formunda bir de aşağıdaki değişkenler tanımlanmalıdır:

SqlConnection SqlConnection1 = new SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

int Sonuc;

Güncelle/Sil Formunun Tam Kod Dökümü

Liste: Güncelle/Sil Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.OleDb;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication9

{

Page 54: C# projesi

public partial class FrmGuncelleSil : System.Windows.Forms.Form

{

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

int Sonuc;

private void FrmGuncelleSil_Load(System.Object sender, System.EventArgs

e)

{

CmbAramaYeri.SelectedIndex = 0;

AcilanKutuDegerleriniAyarla();

}

private void CmbAramaYeri_SelectedIndexChanged(System.Object sender,

System.EventArgs e)

{

AcilanKutuDegerleriniAyarla();

}

private void AcilanKutuDegerleriniAyarla()

{

String StrAramaYeri;

CmbAramaKriteri.Items.Clear();

StrAramaYeri = CmbAramaYeri.Text;

if (String.Compare( StrAramaYeri, "Film", true) == 0)

{

CmbAramaKriteri.Items.Add("Film No");

CmbAramaKriteri.Items.Add("Film Adı");

CmbAramaKriteri.Items.Add("Yapım Yılı");

CmbAramaKriteri.Items.Add("Kategori");

}

else if (String.Compare(StrAramaYeri, "Oyuncu", true) == 0)

{

CmbAramaKriteri.Items.Add("Oyuncu No");

CmbAramaKriteri.Items.Add("Adı");

CmbAramaKriteri.Items.Add("Soyadı");

}

else if (String.Compare(StrAramaYeri, "Yönetmen", true) == 0)

{

CmbAramaKriteri.Items.Add("Yönetmen No");

CmbAramaKriteri.Items.Add("Adı");

CmbAramaKriteri.Items.Add("Soyadı");

}

else if (String.Compare(StrAramaYeri, "Yapımcı", true) == 0)

{

CmbAramaKriteri.Items.Add("Yapımcı No");

CmbAramaKriteri.Items.Add("Adı");

}

else if (String.Compare(StrAramaYeri, "Video", true) == 0)

{

CmbAramaKriteri.Items.Add("Video No");

CmbAramaKriteri.Items.Add("Format");

}

else if (String.Compare(StrAramaYeri, "Müşteri", true) == 0)

{

CmbAramaKriteri.Items.Add("Müşteri No");

CmbAramaKriteri.Items.Add("Adı");

CmbAramaKriteri.Items.Add("Soyadı");

CmbAramaKriteri.Items.Add("İl");

}

CmbAramaKriteri.SelectedIndex = 0;

}

private void CmdAra_Click(System.Object sender, System.EventArgs e)

{

DataSet DsDataSet;

Page 55: C# projesi

String StrAramaYeri;

String StrAramaKriteri;

String StrSorgu;

bool StrArananBos;

StrArananBos = false;

if (TxtArananIfade.Text.Trim() == "")

{

MessageBox.Show("Aranacak bir ifade giriniz.");

StrArananBos = true;

}

StrAramaYeri = CmbAramaYeri.Text;

StrAramaKriteri = CmbAramaKriteri.Text;

if (String.Compare(StrAramaYeri, "Film", true) == 0)

{

Sonuc = 0;

StrSorgu = "SELECT DISTINCT FilmNo, FilmAdi, YonetmenNo,

YapimciNo, Sure, Aciklama, Kategori, Yili FROM Film ";

if (! StrArananBos)

{

if (String.Compare(StrAramaKriteri, "Film No", true)

== 0)

{

StrSorgu += "WHERE FilmNo = \'";

StrSorgu += TxtArananIfade.Text + "\'";

}

else if (String.Compare(StrAramaKriteri, "Film Adı",

true) == 0)

{

StrSorgu += "WHERE FilmAdi LIKE \'";

StrSorgu += TxtArananIfade.Text + "%\'";

}

else if (String.Compare(StrAramaKriteri, "Yapım Yılı",

true) == 0)

{

StrSorgu += "WHERE Yili = \'";

StrSorgu += TxtArananIfade.Text + "\'";

}

else if (String.Compare(StrAramaKriteri, "Kategori",

true) == 0)

{

StrSorgu += "WHERE Kategori = \'";

StrSorgu += TxtArananIfade.Text + "\'";

}

}

}

else if (String.Compare(StrAramaYeri, "Oyuncu", true) == 0)

{

Sonuc = 1;

StrSorgu = "SELECT DISTINCT OyuncuNo, Adi, Soyadi FROM

Oyuncu ";

if (! StrArananBos)

{

if (String.Compare(StrAramaKriteri, "Oyuncu No", true)

== 0)

{

StrSorgu += "WHERE OyuncuNo = \'";

StrSorgu += TxtArananIfade.Text + "\'";

}

else if (String.Compare(StrAramaKriteri, "Adı", true)

== 0)

{

StrSorgu += "WHERE Adi LIKE \'";

StrSorgu += TxtArananIfade.Text + "%\'";

}

Page 56: C# projesi

else if (String.Compare(StrAramaKriteri, "Soyadı",

true) == 0)

{

StrSorgu += "WHERE Soyadi LIKE \'";

StrSorgu += TxtArananIfade.Text + "%\'";

}

}

}

else if (String.Compare(StrAramaYeri, "Yönetmen", true) == 0)

{

Sonuc = 2;

StrSorgu = "SELECT DISTINCT YonetmenNo, Adi, Soyadi FROM

Yonetmen ";

if (! StrArananBos)

{

if (String.Compare(StrAramaKriteri, "Yönetmen No",

true) == 0)

{

StrSorgu += "WHERE YonetmenNo = \'";

StrSorgu += TxtArananIfade.Text + "\'";

}

else if (String.Compare(StrAramaKriteri, "Adı", true)

== 0)

{

StrSorgu += "WHERE Adi LIKE \'";

StrSorgu += TxtArananIfade.Text + "%\'";

}

else if (String.Compare(StrAramaKriteri, "Soyadı",

true) == 0)

{

StrSorgu += "WHERE Soyadi LIKE \'";

StrSorgu += TxtArananIfade.Text + "%\'";

}

}

}

else if (String.Compare(StrAramaYeri, "Yapımcı", true) == 0)

{

Sonuc = 3;

StrSorgu = "SELECT DISTINCT YapimciNo, Adi FROM Yapimci ";

if (! StrArananBos)

{

if (String.Compare(StrAramaKriteri, "Yapımcı No",

true) == 0)

{

StrSorgu += "WHERE YapimciNo = \'";

StrSorgu += TxtArananIfade.Text + "\'";

}

else if (String.Compare(StrAramaKriteri, "Adı", true)

== 0)

{

StrSorgu += "WHERE Adi LIKE \'";

StrSorgu += TxtArananIfade.Text + "%\'";

}

}

}

else if (String.Compare(StrAramaYeri, "Video", true) == 0)

{

Sonuc = 4;

StrSorgu = "SELECT DISTINCT VideoNo, FilmNo, Format, Fiyat

FROM Video ";

if (! StrArananBos)

{

if (String.Compare(StrAramaKriteri, "Video No", true)

== 0)

{

StrSorgu += "WHERE VideoNo = \'";

}

Page 57: C# projesi

else if (String.Compare(StrAramaKriteri, "Format",

true) == 0)

{

StrSorgu += "WHERE Format = \'";

}

StrSorgu += TxtArananIfade.Text + "\'";

}

}

else if (String.Compare(StrAramaYeri, "Müşteri", true) == 0)

{

Sonuc = 5;

StrSorgu = "SELECT DISTINCT MusteriNo, Adi, Soyadi, Adres,

Ilce, Il, PostaKodu, TelefonNo, EPosta FROM Musteri ";

if (! StrArananBos)

{

if (String.Compare(StrAramaKriteri, "Müşteri No",

true) == 0)

{

StrSorgu += "WHERE MusteriNo = \'";

StrSorgu += TxtArananIfade.Text + "\'";

}

else if (String.Compare(StrAramaKriteri, "Adı", true)

== 0)

{

StrSorgu += "WHERE Adi LIKE \'";

StrSorgu += TxtArananIfade.Text + "%\'";

}

else if (String.Compare(StrAramaKriteri, "Soyadı",

true) == 0)

{

StrSorgu += "WHERE Soyadi LIKE \'";

StrSorgu += TxtArananIfade.Text + "%\'";

}

else if (String.Compare(StrAramaKriteri, "İl", true)

== 0)

{

StrSorgu += "WHERE Il = \'";

StrSorgu += TxtArananIfade.Text + "\'";

}

}

}

else

{

Sonuc = - 1;

StrSorgu = "";

}

SqlCommand SelectCmd1 = new SqlCommand(StrSorgu, SqlConnection1);

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd1;

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "AramaSonucuAdmin");

LvwAramaSonucu.Items.Clear();

LvwAramaSonucu.Columns.Clear();

int IntKayitSayisi;

IntKayitSayisi = 0;

int IntKriter;

IntKriter = Sonuc;

ColumnHeader ColumnHeader1 = new ColumnHeader();

ColumnHeader ColumnHeader2 = new ColumnHeader();

ColumnHeader ColumnHeader3 = new ColumnHeader();

ColumnHeader ColumnHeader4 = new ColumnHeader();

ColumnHeader ColumnHeader5 = new ColumnHeader();

Page 58: C# projesi

ColumnHeader ColumnHeader6 = new ColumnHeader();

ColumnHeader ColumnHeader7 = new ColumnHeader();

ColumnHeader ColumnHeader8 = new ColumnHeader();

ColumnHeader ColumnHeader9 = new ColumnHeader();

String StrMesaj="";

if (IntKriter == 0)

{

StrMesaj = "Film bulunamadı.";

LvwAramaSonucu.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3,

ColumnHeader4, ColumnHeader5, ColumnHeader6, ColumnHeader7, ColumnHeader8});

ColumnHeader1.Text = "Film No";

ColumnHeader2.Text = "Film Adı";

ColumnHeader3.Text = "Yönetmen No";

ColumnHeader4.Text = "Yapımcı No";

ColumnHeader5.Text = "Süre";

ColumnHeader6.Text = "Açıklama";

ColumnHeader7.Text = "Kategori";

ColumnHeader8.Text = "Yapım Yılı";

}

else if (IntKriter == 1)

{

StrMesaj = "Oyuncu bulunamadı.";

LvwAramaSonucu.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3});

ColumnHeader1.Text = "Oyuncu No";

ColumnHeader2.Text = "Adı";

ColumnHeader3.Text = "Soyadı";

}

else if (IntKriter == 2)

{

StrMesaj = "Yönetmen bulunamadı.";

LvwAramaSonucu.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3});

ColumnHeader1.Text = "Yönetmen No";

ColumnHeader2.Text = "Adı";

ColumnHeader3.Text = "Soyadı";

}

else if (IntKriter == 3)

{

StrMesaj = "Yapımcı bulunamadı.";

LvwAramaSonucu.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2});

ColumnHeader1.Text = "Yapımcı No";

ColumnHeader2.Text = "Adı";

}

else if (IntKriter == 4)

{

StrMesaj = "Video bulunamadı.";

LvwAramaSonucu.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3,

ColumnHeader4});

ColumnHeader1.Text = "Video No";

ColumnHeader2.Text = "Film No";

ColumnHeader3.Text = "Format";

ColumnHeader4.Text = "Fiyat";

}

else if (IntKriter == 5)

{

StrMesaj = "Müşteri bulunamadı.";

LvwAramaSonucu.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3,

ColumnHeader4, ColumnHeader5, ColumnHeader6, ColumnHeader7, ColumnHeader8,

ColumnHeader9});

ColumnHeader1.Text = "Müşteri No";

ColumnHeader2.Text = "Adı";

ColumnHeader3.Text = "Soyadı";

ColumnHeader4.Text = "Adres";

Page 59: C# projesi

ColumnHeader5.Text = "İlçe";

ColumnHeader6.Text = "İl";

ColumnHeader7.Text = "Posta Kodu";

ColumnHeader8.Text = "Telefon No";

ColumnHeader9.Text = "E-Posta";

}

String StrDeger0 = "";

String StrDeger1 = "";

String StrDeger2 = "";

String StrDeger3 = "";

String StrDeger4 = "";

String StrDeger5 = "";

String StrDeger6 = "";

String StrDeger7 = "";

String StrDeger8 = "";

int IntSayac;

foreach (DataRow DrRowPicker in

DsDataSet.Tables["AramaSonucuAdmin"].Rows)

{

if (IntKriter == 0)

{

for (IntSayac = 0; IntSayac <= 7; IntSayac++)

{

if (DrRowPicker.IsNull(IntSayac))

{

if (IntSayac == 0)

{

StrDeger0 = "";

}

else if (IntSayac == 1)

{

StrDeger1 = "";

}

else if (IntSayac == 2)

{

StrDeger2 = "";

}

else if (IntSayac == 3)

{

StrDeger3 = "";

}

else if (IntSayac == 4)

{

StrDeger4 = "";

}

else if (IntSayac == 5)

{

StrDeger5 = "";

}

else if (IntSayac == 6)

{

StrDeger6 = "";

}

else if (IntSayac == 7)

{

StrDeger7 = "";

}

}

else

{

if (IntSayac == 0)

{

StrDeger0 =

Convert.ToString(DrRowPicker[0]);

}

else if (IntSayac == 1)

{

Page 60: C# projesi

StrDeger1 =

Convert.ToString(DrRowPicker[1]);

}

else if (IntSayac == 2)

{

StrDeger2 =

Convert.ToString(DrRowPicker[2]);

}

else if (IntSayac == 3)

{

StrDeger3 =

Convert.ToString(DrRowPicker[3]);

}

else if (IntSayac == 4)

{

StrDeger4 =

Convert.ToString(DrRowPicker[4]);

}

else if (IntSayac == 5)

{

StrDeger5 =

Convert.ToString(DrRowPicker[5]);

}

else if (IntSayac == 6)

{

StrDeger6 =

Convert.ToString(DrRowPicker[6]);

}

else if (IntSayac == 7)

{

StrDeger7 = Convert.ToString(

DrRowPicker[7]);

}

}

}

String[] StrArananKayit = new String[] {StrDeger0,

StrDeger1, StrDeger2, StrDeger3, StrDeger4, StrDeger5, StrDeger6, StrDeger7};

LvwAramaSonucu.Items.Add(new

ListViewItem(StrArananKayit));

}

else if (IntKriter == 1)

{

for (IntSayac = 0; IntSayac <= 2; IntSayac++)

{

if (DrRowPicker.IsNull(IntSayac))

{

if (IntSayac == 0)

{

StrDeger0 = "";

}

else if (IntSayac == 1)

{

StrDeger1 = "";

}

else if (IntSayac == 2)

{

StrDeger2 = "";

}

}

else

{

if (IntSayac == 0)

{

StrDeger0 =

Convert.ToString(DrRowPicker[IntSayac]);

}

else if (IntSayac == 1)

{

Page 61: C# projesi

StrDeger1 =

Convert.ToString(DrRowPicker[IntSayac]);

}

else if (IntSayac == 2)

{

StrDeger2 =

Convert.ToString(DrRowPicker[IntSayac]);

}

}

}

String[] StrArananKayit = new String[] {StrDeger0,

StrDeger1, StrDeger2};

LvwAramaSonucu.Items.Add(new

ListViewItem(StrArananKayit));

}

else if (IntKriter == 2)

{

for (IntSayac = 0; IntSayac <= 2; IntSayac++)

{

if (DrRowPicker.IsNull(IntSayac))

{

if (IntSayac == 0)

{

StrDeger0 = "";

}

else if (IntSayac == 1)

{

StrDeger1 = "";

}

else if (IntSayac == 2)

{

StrDeger2 = "";

}

}

else

{

if (IntSayac == 0)

{

StrDeger0 =

Convert.ToString(DrRowPicker[0]);

}

else if (IntSayac == 1)

{

StrDeger1 =

Convert.ToString(DrRowPicker[1]);

}

else if (IntSayac == 2)

{

StrDeger2 =

Convert.ToString(DrRowPicker[2]);

}

}

}

String[] StrArananKayit = new String[] {StrDeger0,

StrDeger1, StrDeger2};

LvwAramaSonucu.Items.Add(new

ListViewItem(StrArananKayit));

}

else if (IntKriter == 3)

{

for (IntSayac = 0; IntSayac <= 1; IntSayac++)

{

if (DrRowPicker.IsNull(IntSayac))

{

if (IntSayac == 0)

{

StrDeger0 = "";

Page 62: C# projesi

}

else if (IntSayac == 1)

{

StrDeger1 = "";

}

}

else

{

if (IntSayac == 0)

{

StrDeger0 =

Convert.ToString(DrRowPicker[0]);

}

else if (IntSayac == 1)

{

StrDeger1 =

Convert.ToString(DrRowPicker[1]);

}

}

}

String[] StrArananKayit = new String[] {StrDeger0,

StrDeger1};

LvwAramaSonucu.Items.Add(new

ListViewItem(StrArananKayit));

}

else if (IntKriter == 4)

{

for (IntSayac = 0; IntSayac <= 3; IntSayac++)

{

if (DrRowPicker.IsNull(IntSayac))

{

if (IntSayac == 0)

{

StrDeger0 = "";

}

else if (IntSayac == 1)

{

StrDeger1 = "";

}

else if (IntSayac == 2)

{

StrDeger2 = "";

}

else if (IntSayac == 3)

{

StrDeger3 = "";

}

}

else

{

if (IntSayac == 0)

{

StrDeger0 =

Convert.ToString(DrRowPicker[0]);

}

else if (IntSayac == 1)

{

StrDeger1 =

Convert.ToString(DrRowPicker[1]);

}

else if (IntSayac == 2)

{

StrDeger2 =

Convert.ToString(DrRowPicker[2]);

}

else if (IntSayac == 3)

{

Page 63: C# projesi

StrDeger3 =

Convert.ToString(DrRowPicker[3]);

}

}

}

String[] StrArananKayit = new String[] {StrDeger0,

StrDeger1, StrDeger2, StrDeger3};

LvwAramaSonucu.Items.Add(new

ListViewItem(StrArananKayit));

}

else if (IntKriter == 5)

{

for (IntSayac = 0; IntSayac <= 8; IntSayac++)

{

if (DrRowPicker.IsNull(IntSayac))

{

if (IntSayac == 0)

{

StrDeger0 = "";

}

else if (IntSayac == 1)

{

StrDeger1 = "";

}

else if (IntSayac == 2)

{

StrDeger2 = "";

}

else if (IntSayac == 3)

{

StrDeger3 = "";

}

else if (IntSayac == 4)

{

StrDeger4 = "";

}

else if (IntSayac == 5)

{

StrDeger5 = "";

}

else if (IntSayac == 6)

{

StrDeger6 = "";

}

else if (IntSayac == 7)

{

StrDeger7 = "";

}

else if (IntSayac == 8)

{

StrDeger8 = "";

}

}

else

{

if (IntSayac == 0)

{

StrDeger0 = Convert.ToString(

DrRowPicker[0]);

}

else if (IntSayac == 1)

{

StrDeger1 = Convert.ToString(

DrRowPicker[1]);

}

else if (IntSayac == 2)

{

Page 64: C# projesi

StrDeger2 = Convert.ToString(

DrRowPicker[2]);

}

else if (IntSayac == 3)

{

StrDeger3 = Convert.ToString(

DrRowPicker[3]);

}

else if (IntSayac == 4)

{

StrDeger4 = Convert.ToString(

DrRowPicker[4]);

}

else if (IntSayac == 5)

{

StrDeger5 =

Convert.ToString(DrRowPicker[5]);

}

else if (IntSayac == 6)

{

StrDeger6 = Convert.ToString(

DrRowPicker[6]);

}

else if (IntSayac == 7)

{

StrDeger7 = Convert.ToString(

DrRowPicker[7]);

}

else if (IntSayac == 8)

{

StrDeger8 =

Convert.ToString(DrRowPicker[8]);

}

}

}

String[] StrArananKayit = new String[] {StrDeger0,

StrDeger1, StrDeger2, StrDeger3, StrDeger4, StrDeger5, StrDeger6, StrDeger7, StrDeger8};

LvwAramaSonucu.Items.Add(new

ListViewItem(StrArananKayit));

}

IntKayitSayisi++;

}

if (IntKayitSayisi == 0)

{

MessageBox.Show(StrMesaj);

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

private void CmdGuncelle_Click(System.Object sender, System.EventArgs e)

{

ListView.SelectedListViewItemCollection LstViewCollection;

LstViewCollection = new

ListView.SelectedListViewItemCollection(LvwAramaSonucu);

int IntSecilenSayisi;

IntSecilenSayisi = LstViewCollection.Count;

if (IntSecilenSayisi < 1)

{

MessageBox.Show("Hiç kayıt seçmediniz.");

return;

}

else if (IntSecilenSayisi > 1)

{

Page 65: C# projesi

return;

}

int IntKriter;

IntKriter = Sonuc;

FrmOyuncuKayit ObjOyuncu;

FrmYonetmenKayit ObjYonetmen;

FrmYapimciKayit ObjYapimci;

FrmFilmKayit ObjFilm;

FrmVideoKayit ObjVideo;

FrmMusteriKayit ObjMusteri;

String StrGuncellenecekNo = LstViewCollection[0].Text;

if (IntKriter == 0)

{

ObjFilm = new FrmFilmKayit();

ObjFilm.GuncellenecekNoyuAyarla(StrGuncellenecekNo);

ObjFilm.Show();

}

else if (IntKriter == 1)

{

ObjOyuncu = new FrmOyuncuKayit();

ObjOyuncu.GuncellenecekNoyuAyarla(StrGuncellenecekNo);

ObjOyuncu.Show();

}

else if (IntKriter == 2)

{

ObjYonetmen = new FrmYonetmenKayit();

ObjYonetmen.GuncellenecekNoyuAyarla(StrGuncellenecekNo);

ObjYonetmen.Show();

}

else if (IntKriter == 3)

{

ObjYapimci = new FrmYapimciKayit();

ObjYapimci.GuncellenecekNoyuAyarla(StrGuncellenecekNo);

ObjYapimci.Show();

}

else if (IntKriter == 4)

{

ObjVideo = new FrmVideoKayit();

ObjVideo.GuncellenecekNoyuAyarla(StrGuncellenecekNo);

ObjVideo.Show();

}

else if (IntKriter == 5)

{

ObjMusteri = new FrmMusteriKayit();

ObjMusteri.GuncellenecekNoyuAyarla(StrGuncellenecekNo);

ObjMusteri.Show();

}

}

private void CmdSil_Click(System.Object sender, System.EventArgs e)

{

ListView.SelectedListViewItemCollection LstViewCollection;

LstViewCollection = new

ListView.SelectedListViewItemCollection(LvwAramaSonucu);

int IntSecilenSayisi;

IntSecilenSayisi = LstViewCollection.Count;

if (IntSecilenSayisi < 1)

{

MessageBox.Show("Hiç kayıt seçmediniz.");

return;

}

DialogResult IntSnc;

IntSnc = MessageBox.Show("Bu kaydı silmek istediğinize emin

misiniz?", "", MessageBoxButtons.YesNo);

Page 66: C# projesi

if (IntSnc == DialogResult.No)

{

return;

}

int IntSayac;

String StrSilinecekNo = "";

for (IntSayac = 0; IntSayac <= IntSecilenSayisi - 1; IntSayac++)

{

StrSilinecekNo += "\'";

StrSilinecekNo += LstViewCollection[0].Text;

StrSilinecekNo += "\'";

if (IntSayac < IntSecilenSayisi - 1)

{

StrSilinecekNo += ",";

}

LstViewCollection[0].Remove();

}

String StrSorgu = null;

int IntKriter;

IntKriter = Sonuc;

if (IntKriter == 0)

{

StrSorgu = "DELETE FROM Film WHERE FilmNo IN (";

StrSorgu += StrSilinecekNo + ")";

}

else if (IntKriter == 1)

{

StrSorgu = "DELETE FROM Oyuncu WHERE OyuncuNo IN (";

StrSorgu += StrSilinecekNo + ")";

}

else if (IntKriter == 2)

{

StrSorgu = "DELETE FROM Yonetmen WHERE YonetmenNo IN (";

StrSorgu += StrSilinecekNo + ")";

}

else if (IntKriter == 3)

{

StrSorgu = "DELETE FROM Yapimci WHERE YapimciNo IN (";

StrSorgu += StrSilinecekNo + ")";

}

else if (IntKriter == 4)

{

StrSorgu = "DELETE FROM Video WHERE VideoNo IN (";

StrSorgu += StrSilinecekNo + ")";

}

else if (IntKriter == 5)

{

StrSorgu = "DELETE FROM Musteri WHERE MusteriNo IN (";

StrSorgu += StrSilinecekNo + ")";

}

SqlCommand DeleteCmd1 = new SqlCommand(StrSorgu, SqlConnection1);

SqlDataAdapter1.DeleteCommand = DeleteCmd1;

try

{

SqlConnection1.Open();

SqlDataAdapter1.DeleteCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

Page 67: C# projesi

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

}

private void CmdTemizle_Click(System.Object sender, System.EventArgs e)

{

LvwAramaSonucu.Items.Clear();

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

}

}

Page 68: C# projesi

Bilgi Giriş Formlarına İşlevsellik Kazandırmak

Bu kısım aşağıdaki formlara nasıl işlevsellik kazandırılacağını açıklar:

Oyuncu Kayıt formu

Yönetmen Kayıt formu

Yapımcı Kayıt formu

Video Kayıt formu

Film Kayıt formu

Müşteri Kayıt formu

Oyuncu Kayıt Formu

Diğer formlarda olduğu gibi Oyuncu Kayıt formuna da aşağıdaki ifadeler dâhil edilmelidir:

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

Oyuncu Kayıt formunda tanımlanacak değişkenler aşağıdadır:

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

SqlConnection SqlConnection1 = new SqlConnection(Module1.StrConnectionString);

private String StrGuncellenecekNo;

GuncellenecekNoyuAyarla Fonksiyonu

GuncellenecekNoyuAyarla fonksiyonu yönetici Güncelle/Sil formunda bir kayıt seçip Gönder butonuna tıklayınca çalışır. Güncelle/Sil fonksiyonu yönetici tarafından seçilen kayıt ifadesini GuncellenecekNoyuAyarla fonksiyonuna aktarır. GuncellenecekNoyuAyarla fonksiyonu yönetici tarafından seçilen kayıt bilgisini StrGuncellenecekNo değişkeninde tutar.

public void GuncellenecekNoyuAyarla(String StrGnclNo)

{

StrGuncellenecekNo = StrGnclNo;

}

FrmOyuncuKayit_Load Fonksiyonu

FrmOyuncuKayit_Load Fonksiyonu Oyuncu Kayıt formu yüklenirken çalışır. Bu fonksiyon Oyuncu Kayıt formunun Güncelle/Sil formu tarafından açılıp açılmadığını kontrol eder. Eğer Oyuncu Kayıt formu Güncelle/Sil formu tarafından açılmışsa, FrmOyuncuKayit_Load Fonksiyonu yönetici tarafından seçilmiş olan kayıt bilgilerini getirip görüntüler. Kayıt bilgilerini görüntülemenin yanı sıra fonksiyon aynı zamanda Oyuncu No metin kutusunu kilitler.

Oyuncu Kayıt Formunun Tam Kod Dökümü

Page 69: C# projesi

Liste: Oyuncu Kayıt Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication9

{

public partial class FrmOyuncuKayit : System.Windows.Forms.Form

{

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

private String StrGuncellenecekNo;

public void GuncellenecekNoyuAyarla(String StrGnclNo)

{

StrGuncellenecekNo = StrGnclNo;

}

private void FrmOyuncuKayit_Load(System.Object sender, System.EventArgs

e)

{

if (StrGuncellenecekNo != null)//"")

{

txtOyuncuNo.Enabled = false;

String SelectString;

SelectString = "SELECT OyuncuNo, Adi, Soyadi, DogumTarihi,

Ozgecmis FROM Oyuncu WHERE OyuncuNo = \'" + StrGuncellenecekNo + "\'";

SqlCommand SelectCmd1 = new SqlCommand(SelectString,

SqlConnection1);

DataSet DsDataSet;

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd1;

SqlDataAdapter1.SelectCommand.CommandText = SelectString;

try

{

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "Sonuc");

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

txtOyuncuNo.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.OyuncuNo"));

txtAdi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Adi"));

txtSoyadi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Soyadi"));

DtpDogumTarihi.DataBindings.Add(new Binding("Text",

DsDataSet, "Sonuc.DogumTarihi"));

txtOzgecmis.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Ozgecmis"));

Page 70: C# projesi

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

}

private void CmdGonder_Click(System.Object sender, System.EventArgs e)

{

if (txtOyuncuNo.Text.Trim() == "")

{

MessageBox.Show("Oyuncu No bilgisini giriniz.");

txtOyuncuNo.Focus();

return;

}

if (txtAdi.Text.Trim() == "")

{

MessageBox.Show("Oyuncı Adı bilgisini giriniz.");

txtAdi.Focus();

return;

}

if (txtSoyadi.Text.Trim() == "")

{

MessageBox.Show("Oyuncu Soyadı bilgisini giriniz.");

txtSoyadi.Focus();

return;

}

if (StrGuncellenecekNo != null)//"")

{

String UpdString;

UpdString = "UPDATE Oyuncu SET OyuncuNo = @OyuncuNo, Adi =

@Adi, Soyadi = @Soyadi, DogumTarihi = @DogumTarihi, Ozgecmis = @Ozgecmis WHERE OyuncuNo =

\'" + StrGuncellenecekNo + "\'";

SqlCommand UpdateCmd1 = new SqlCommand(UpdString,

SqlConnection1);

SqlDataAdapter1.UpdateCommand = UpdateCmd1;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@OyuncuNo", System.Data.SqlDbType.Char, 5,

"OyuncuNo"));

SqlDataAdapter1.UpdateCommand.Parameters[0].Value =

txtOyuncuNo.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 50, "Adi"));

SqlDataAdapter1.UpdateCommand.Parameters[1].Value =

txtAdi.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Soyadi", System.Data.SqlDbType.VarChar, 50,

"Soyadi"));

SqlDataAdapter1.UpdateCommand.Parameters[2].Value =

txtSoyadi.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@DogumTarihi", System.Data.SqlDbType.DateTime, 8,

"DogumTarihi"));

SqlDataAdapter1.UpdateCommand.Parameters[3].Value =

DtpDogumTarihi.Value;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Ozgecmis", System.Data.SqlDbType.VarChar, 255,

"Ozgecmis"));

SqlDataAdapter1.UpdateCommand.Parameters[4].Value =

txtOzgecmis.Text;

try

{

SqlConnection1.Open();

SqlDataAdapter1.UpdateCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

Page 71: C# projesi

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt güncellendi.");

}

else

{

String InsString;

InsString = "INSERT INTO Oyuncu(OyuncuNo, Adi, Soyadi,

DogumTarihi, Ozgecmis) VALUES (@OyuncuNo, @Adi, @Soyadi, @DogumTarihi, @Ozgecmis); SELECT

OyuncuNo, Adi, Soyadi, DogumTarihi, Ozgecmis FROM Oyuncu WHERE (OyuncuNo = @OyuncuNo)";

SqlCommand InsertCmd1 = new SqlCommand(InsString,

SqlConnection1);

SqlDataAdapter1.InsertCommand = InsertCmd1;

SqlDataAdapter1.InsertCommand.Connection = SqlConnection1;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@OyuncuNo", System.Data.SqlDbType.VarChar, 5, "OyuncuNo"));

SqlDataAdapter1.InsertCommand.Parameters[0].Value =

txtOyuncuNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 50, "Adi"));

SqlDataAdapter1.InsertCommand.Parameters[1].Value =

txtAdi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Soyadi", System.Data.SqlDbType.VarChar, 50, "Soyadi"));

SqlDataAdapter1.InsertCommand.Parameters[2].Value =

txtSoyadi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@DogumTarihi", System.Data.SqlDbType.DateTime, 8, "DogumTarihi"));

SqlDataAdapter1.InsertCommand.Parameters[3].Value =

DtpDogumTarihi.Value;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Ozgecmis", System.Data.SqlDbType.VarChar, 255, "Ozgecmis"));

SqlDataAdapter1.InsertCommand.Parameters[4].Value =

txtOzgecmis.Text;

try

{

SqlConnection1.Open();

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt başarılı bir şekilde eklendi.",

"Kayıt eklendi", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

this.Close();

Page 72: C# projesi

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

}

}

Page 73: C# projesi

Yönetmen Kayıt Formu

Liste: Yönetmen Kayıt Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication9

{

public partial class FrmYonetmenKayit : System.Windows.Forms.Form

{

private String StrGuncellenecekNo;

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

public void GuncellenecekNoyuAyarla(String StrGnclNo)

{

StrGuncellenecekNo = StrGnclNo;

}

private void CmdGonder_Click(System.Object sender, System.EventArgs e)

{

if (TxtYonetmenNo.Text.Trim() == "")

{

MessageBox.Show("Yönetmen No bilgisini giriniz.");

TxtYonetmenNo.Focus();

return;

}

if (TxtAdi.Text.Trim() == "")

{

MessageBox.Show("Yönetmen Adı bilgisini giriniz.");

TxtAdi.Focus();

return;

}

if (TxtSoyadi.Text.Trim() == "")

{

MessageBox.Show("Yönetmen Soyadı bilgisini giriniz.");

TxtSoyadi.Focus();

return;

}

if (StrGuncellenecekNo != null)//"")

{

String UpdString;

Page 74: C# projesi

UpdString = "UPDATE Yonetmen SET YonetmenNo = @YonetmenNo,

Adi = @Adi, Soyadi = @Soyadi, DogumTarihi = @DogumTarihi, Ozgecmis = @Ozgecmis WHERE

YonetmenNo = \'" + StrGuncellenecekNo + "\'";

SqlCommand UpdateCmd1 = new SqlCommand(UpdString,

SqlConnection1);

SqlDataAdapter1.UpdateCommand = UpdateCmd1;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@YonetmenNo", System.Data.SqlDbType.Char, 5,

"YonetmenNo"));

SqlDataAdapter1.UpdateCommand.Parameters[0].Value =

TxtYonetmenNo.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 50, "Adi"));

SqlDataAdapter1.UpdateCommand.Parameters[1].Value =

TxtAdi.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Soyadi", System.Data.SqlDbType.VarChar, 50,

"Soyadi"));

SqlDataAdapter1.UpdateCommand.Parameters[2].Value =

TxtSoyadi.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@DogumTarihi", System.Data.SqlDbType.DateTime, 8,

"DogumTarihi"));

SqlDataAdapter1.UpdateCommand.Parameters[3].Value =

DtpDogumTarihi.Value;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Ozgecmis", System.Data.SqlDbType.VarChar, 255,

"Ozgecmis"));

SqlDataAdapter1.UpdateCommand.Parameters[4].Value =

TxtOzgecmis.Text;

try

{

SqlConnection1.Open();

SqlDataAdapter1.UpdateCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt güncellendi.");

}

else

{

String InsString;

InsString = "INSERT INTO Yonetmen(YonetmenNo, Adi, Soyadi,

DogumTarihi, Ozgecmis) VALUES (@YonetmenNo, @Adi, @Soyadi, @DogumTarihi, @Ozgecmis);" +

"SELECT YonetmenNo, Adi, Soyadi, DogumTarihi, Ozgecmis FROM Yonetmen WHERE (YonetmenNo =

@YonetmenNo)";

SqlCommand InsertCmd1 = new SqlCommand(InsString,

SqlConnection1);

SqlDataAdapter1.InsertCommand = InsertCmd1;

SqlDataAdapter1.InsertCommand.Connection = SqlConnection1;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@YonetmenNo", System.Data.SqlDbType.VarChar, 5, "YonetmenNo"));

SqlDataAdapter1.InsertCommand.Parameters[0].Value =

TxtYonetmenNo.Text;

Page 75: C# projesi

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 50, "Adi"));

SqlDataAdapter1.InsertCommand.Parameters[1].Value =

TxtAdi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Soyadi", System.Data.SqlDbType.VarChar, 50, "Soyadi"));

SqlDataAdapter1.InsertCommand.Parameters[2].Value =

TxtSoyadi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@DogumTarihi", System.Data.SqlDbType.DateTime, 8, "DogumTarihi"));

SqlDataAdapter1.InsertCommand.Parameters[3].Value =

DtpDogumTarihi.Value;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Ozgecmis", System.Data.SqlDbType.VarChar, 255, "Ozgecmis"));

SqlDataAdapter1.InsertCommand.Parameters[4].Value =

TxtOzgecmis.Text;

try

{

SqlConnection1.Open();

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt başarılı bir şekilde eklendi.",

"Kayıt eklendi", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

this.Close();

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

private void FrmYonetmenKayit_Load(System.Object sender,

System.EventArgs e)

{

if (StrGuncellenecekNo != null)//"")

{

TxtYonetmenNo.Enabled = false;

String SelectString;

SelectString = "SELECT YonetmenNo, Adi, Soyadi, DogumTarihi,

Ozgecmis FROM Yonetmen WHERE YonetmenNo = \'" + StrGuncellenecekNo + "\'";

SqlCommand SelectCmd1 = new SqlCommand(SelectString,

SqlConnection1);

DataSet DsDataSet;

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd1;

SqlDataAdapter1.SelectCommand.CommandText = SelectString;

try

{

SqlConnection1.Open();

Page 76: C# projesi

SqlDataAdapter1.Fill(DsDataSet, "Sonuc");

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

TxtYonetmenNo.DataBindings.Add(new Binding("Text",

DsDataSet, "Sonuc.YonetmenNo"));

TxtAdi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Adi"));

TxtSoyadi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Soyadi"));

DtpDogumTarihi.DataBindings.Add(new Binding("Text",

DsDataSet, "Sonuc.DogumTarihi"));

TxtOzgecmis.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Ozgecmis"));

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

}

}

}

Page 77: C# projesi

Yapımcı Kayıt Form

Liste: Yapımcı Kayıt Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication9

{

public partial class FrmYapimciKayit : System.Windows.Forms.Form

{

public FrmYapimciKayit()

{

InitializeComponent();

}

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

private String StrGuncellenecekNo;

public void GuncellenecekNoyuAyarla(String StrGnclNo)

{

StrGuncellenecekNo = StrGnclNo;

}

private void CmdGonder_Click(System.Object sender, System.EventArgs e)

{

if (TxtYapimciNo.Text.Trim() == "")

{

MessageBox.Show("Yapımcı No bilgisini giriniz.");

TxtYapimciNo.Focus();

return;

}

if (TxtAdi.Text.Trim() == "")

{

MessageBox.Show("Yönetici Adı bilgisini giriniz.");

TxtAdi.Focus();

return;

}

if (StrGuncellenecekNo != null)//"")

{

String UpdString;

UpdString = "UPDATE Yapimci SET YapimciNo = @YapimciNo, Adi = @Adi

WHERE YapimciNo = \'" + StrGuncellenecekNo + "\'";

SqlCommand UpdateCmd1 = new SqlCommand(UpdString, SqlConnection1);

SqlDataAdapter1.UpdateCommand = UpdateCmd1;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@YapimciNo", System.Data.SqlDbType.VarChar, 5,

"YapimciNo"));

Page 78: C# projesi

SqlDataAdapter1.UpdateCommand.Parameters[0].Value =

TxtYapimciNo.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 25, "Adi"));

SqlDataAdapter1.UpdateCommand.Parameters[1].Value = TxtAdi.Text;

try

{

SqlConnection1.Open();

SqlDataAdapter1.UpdateCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt güncellendi.");

}

else

{

String InsString;

InsString = "INSERT INTO Yapimci(YapimciNo, Adi) VALUES

(@YapimciNo, @Adi); SELECT YapimciNo, Adi FROM Yapimci WHERE (YapimciNo = @YapimciNo)";

SqlCommand InsertCmd1 = new SqlCommand(InsString, SqlConnection1);

SqlDataAdapter1.InsertCommand = InsertCmd1;

SqlDataAdapter1.InsertCommand.Connection = SqlConnection1;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@YapimciNo", System.Data.SqlDbType.VarChar, 5, "YapimciNo"));

SqlDataAdapter1.InsertCommand.Parameters[0].Value =

TxtYapimciNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 25, "Adi"));

SqlDataAdapter1.InsertCommand.Parameters[1].Value = TxtAdi.Text;

try

{

SqlConnection1.Open();

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt başarılı bir şekilde eklendi.", "Kayıt

eklendi", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

this.Close();

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

Page 79: C# projesi

}

private void FrmYapimciKayit_Load(System.Object sender, System.EventArgs e)

{

if (StrGuncellenecekNo != null)//"")

{

TxtYapimciNo.Enabled = false;

String SelectString;

SelectString = "SELECT YapimciNo, Adi FROM Yapimci WHERE YapimciNo

= \'" + StrGuncellenecekNo + "\'";

SqlCommand SelectCmd1 = new SqlCommand(SelectString,

SqlConnection1);

DataSet DsDataSet;

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd1;

SqlDataAdapter1.SelectCommand.CommandText = SelectString;

try

{

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "Sonuc");

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

TxtYapimciNo.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.YapimciNo"));

TxtAdi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Adi"));

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

}

}

}

Page 80: C# projesi

Video Kayıt Formu

Liste: Video Kayıt Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication9

{

public partial class FrmVideoKayit : System.Windows.Forms.Form

{

private String StrGuncellenecekNo;

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

public void GuncellenecekNoyuAyarla(String StrGnclNo)

{

StrGuncellenecekNo = StrGnclNo;

}

private void CmdGonder_Click(System.Object sender, System.EventArgs e)

{

if (TxtVideoNo.Text.Trim() == "")

{

MessageBox.Show("Video No bilgisini giriniz.");

TxtVideoNo.Focus();

return;

}

if (TxtFilmNo.Text.Trim() == "")

{

MessageBox.Show("Film No bilgisini giriniz.");

TxtFilmNo.Focus();

return;

}

if (TxtFiyat.Text.Trim() == "")

{

MessageBox.Show("Fiyat bilgisini giriniz.");

TxtFiyat.Focus();

return;

}

if (StrGuncellenecekNo != null)//"")

{

String UpdString;

UpdString = "UPDATE Video SET FilmNo = @FilmNo, Format =

@Format, Fiyat = @Fiyat WHERE VideoNo = \'" + StrGuncellenecekNo + "\'";

Page 81: C# projesi

SqlCommand UpdateCmd1 = new SqlCommand(UpdString,

SqlConnection1);

SqlDataAdapter1.UpdateCommand = UpdateCmd1;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@FilmNo", System.Data.SqlDbType.VarChar, 5,

"FilmNo"));

SqlDataAdapter1.UpdateCommand.Parameters[0].Value =

TxtFilmNo.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Format", System.Data.SqlDbType.VarChar, 4,

"Format"));

SqlDataAdapter1.UpdateCommand.Parameters[1].Value =

TxtFormat.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Fiyat", System.Data.SqlDbType.Money, 8, "Fiyat"));

SqlDataAdapter1.UpdateCommand.Parameters[2].Value =

TxtFiyat.Text;

try

{

SqlConnection1.Open();

SqlDataAdapter1.UpdateCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt güncellendi.");

}

else

{

String InsString;

InsString = "INSERT INTO Video(VideoNo, FilmNo, Format,

Fiyat) VALUES (@VideoNo, @FilmNo, @Format, @Fiyat); SELECT VideoNo, FilmNo, Format, Fiyat

FROM Video WHERE (VideoNo = @VideoNo)";

SqlCommand InsertCmd1 = new SqlCommand(InsString,

SqlConnection1);

SqlDataAdapter1.InsertCommand = InsertCmd1;

SqlDataAdapter1.InsertCommand.Connection = SqlConnection1;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@VideoNo", System.Data.SqlDbType.VarChar, 5, "VideoNo"));

SqlDataAdapter1.InsertCommand.Parameters[0].Value =

TxtVideoNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@FilmNo", System.Data.SqlDbType.VarChar, 5, "FilmNo"));

SqlDataAdapter1.InsertCommand.Parameters[1].Value =

TxtFilmNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Format", System.Data.SqlDbType.VarChar, 4, "Format"));

SqlDataAdapter1.InsertCommand.Parameters[2].Value =

TxtFormat.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

SqlParameter("@Fiyat", System.Data.SqlDbType.Money, 8, "Fiyat"));

SqlDataAdapter1.InsertCommand.Parameters[3].Value =

TxtFiyat.Text;

try

{

Page 82: C# projesi

SqlConnection1.Open();

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt başarılı bir şekilde eklendi.",

"Kayıt eklendi", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

this.Close();

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

private void FrmVideoKayit_Load(System.Object sender, System.EventArgs

e)

{

if (StrGuncellenecekNo != null)//"")

{

TxtVideoNo.Enabled = false;

String SelectString;

SelectString = "SELECT VideoNo, FilmNo, Format, Fiyat FROM

Video WHERE VideoNo = \'" + StrGuncellenecekNo + "\'";

SqlCommand SelectCmd1 = new SqlCommand(SelectString,

SqlConnection1);

DataSet DsDataSet;

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd1;

SqlDataAdapter1.SelectCommand.CommandText = SelectString;

try

{

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "Sonuc");

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

TxtVideoNo.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.VideoNo"));

Page 83: C# projesi

TxtFilmNo.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.FilmNo"));

TxtFormat.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Format"));

TxtFiyat.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Fiyat"));

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

}

}

}

Page 84: C# projesi

Film Kayıt Formu

Liste: Film Kayıt Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication9

{

public partial class FrmFilmKayit : System.Windows.Forms.Form

{

private String StrGuncellenecekNo;

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

public void GuncellenecekNoyuAyarla(String StrGnclNo)

{

StrGuncellenecekNo = StrGnclNo;

}

private void CmdGonder_Click(System.Object sender, System.EventArgs e)

{

if (TxtFilmNo.Text.Trim() == "")

{

MessageBox.Show("Film No biligisini giriniz.");

TxtFilmNo.Focus();

return;

}

if (TxtFilmAdi.Text.Trim() == "")

{

MessageBox.Show("Film Adı bilgisini giriniz.");

TxtFilmAdi.Focus();

return;

}

if (TxtYonetmenNo.Text.Trim() == "")

{

MessageBox.Show("Yönetmen No bilgisini giriniz.");

TxtYonetmenNo.Focus();

return;

Page 85: C# projesi

}

if (TxtYapimciNo.Text.Trim() == "")

{

MessageBox.Show("Yapımcı No bilgisini giriniz.");

TxtYapimciNo.Focus();

return;

}

if (TxtSure.Text.Trim() == "")

{

MessageBox.Show("Süre bilgisini giriniz.");

TxtSure.Focus();

return;

}

if (TxtYapimYili.Text.Trim() == "")

{

MessageBox.Show("Yapım Yılı bilgisini giriniz.");

TxtYapimYili.Focus();

return;

}

if (StrGuncellenecekNo != null)//"")

{

String UpdString;

UpdString = "UPDATE Film SET FilmNo = @FilmNo, FilmAdi =

@FilmAdi, YonetmenNo = @YonetmenNo, YapimciNo = @YapimciNo, Sure = @Sure, Aciklama =

@Aciklama, Kategori = @Kategori, Yili = @Yili WHERE FilmNo = \'" + StrGuncellenecekNo +

"\'";

SqlCommand UpdateCmd1 = new SqlCommand(UpdString,

SqlConnection1);

SqlDataAdapter1.UpdateCommand = UpdateCmd1;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@FilmNo", System.Data.SqlDbType.VarChar, 5,

"FilmNo"));

SqlDataAdapter1.UpdateCommand.Parameters[0].Value =

TxtFilmNo.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@FilmAdi", System.Data.SqlDbType.VarChar, 40,

"FilmAdi"));

SqlDataAdapter1.UpdateCommand.Parameters[1].Value =

TxtFilmAdi.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@YonetmenNo", System.Data.SqlDbType.VarChar, 5,

"YonetmenNo"));

SqlDataAdapter1.UpdateCommand.Parameters[2].Value =

TxtYonetmenNo.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@YapimciNo", System.Data.SqlDbType.VarChar, 5,

"YapimciNo"));

SqlDataAdapter1.UpdateCommand.Parameters[3].Value =

TxtYapimciNo.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Sure", System.Data.SqlDbType.Int, 4, "Sure"));

SqlDataAdapter1.UpdateCommand.Parameters[4].Value =

TxtSure.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Aciklama", System.Data.SqlDbType.VarChar, 255,

"Aciklama"));

SqlDataAdapter1.UpdateCommand.Parameters[5].Value =

TxtAciklama.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Kategori", System.Data.SqlDbType.VarChar, 20,

"Kategori"));

SqlDataAdapter1.UpdateCommand.Parameters[6].Value =

TxtKategori.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Yili", System.Data.SqlDbType.Int, 4, "Yili"));

SqlDataAdapter1.UpdateCommand.Parameters[7].Value =

TxtYapimYili.Text;

Page 86: C# projesi

try

{

SqlConnection1.Open();

SqlDataAdapter1.UpdateCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt güncellendi.");

}

else

{

String InsString;

InsString = "INSERT INTO Film(FilmNo, FilmAdi, YonetmenNo,

YapimciNo, Sure, Aciklama, Kategori, Yili) VALUES (@FilmNo, @FilmAdi, @YonetmenNo,

@YapimciNo, @Sure, @Aciklama, @Kategori, @Yili); SELECT FilmNo, FilmAdi, YonetmenNo,

YapimciNo, Sure, Aciklama, Kategori, Yili FROM Film WHERE (FilmNo = @FilmNo)";

SqlCommand InsertCmd1 = new SqlCommand(InsString,

SqlConnection1);

SqlDataAdapter1.InsertCommand = InsertCmd1;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@FilmNo", System.Data.SqlDbType.VarChar, 5,

"FilmNo"));

SqlDataAdapter1.InsertCommand.Parameters[0].Value =

TxtFilmNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@FilmAdi", System.Data.SqlDbType.VarChar, 40,

"FilmAdi"));

SqlDataAdapter1.InsertCommand.Parameters[1].Value =

TxtFilmAdi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@YonetmenNo", System.Data.SqlDbType.VarChar, 5,

"YonetmenNo"));

SqlDataAdapter1.InsertCommand.Parameters[2].Value =

TxtYonetmenNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@YapimciNo", System.Data.SqlDbType.VarChar, 5,

"YapimciNo"));

SqlDataAdapter1.InsertCommand.Parameters[3].Value =

TxtYapimciNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Sure", System.Data.SqlDbType.Int, 4, "Sure"));

SqlDataAdapter1.InsertCommand.Parameters[4].Value =

TxtSure.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Aciklama", System.Data.SqlDbType.VarChar, 255,

"Aciklama"));

SqlDataAdapter1.InsertCommand.Parameters[5].Value =

TxtAciklama.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Kategori", System.Data.SqlDbType.VarChar, 20,

"Kategori"));

SqlDataAdapter1.InsertCommand.Parameters[6].Value =

TxtKategori.Text;

if (TxtYapimYili.Text == "")

{

TxtYapimYili.Text = "Null";

}

Page 87: C# projesi

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Yili", System.Data.SqlDbType.Int, 4, "Yili"));

SqlDataAdapter1.InsertCommand.Parameters[7].Value =

TxtYapimYili.Text;

try

{

SqlConnection1.Open();

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

}

catch (Exception MyException)

{

MessageBox.Show(MyException.Message);

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt başarılı bir şekilde eklendi.",

"Kayıt eklendi", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

this.Close();

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

private void FrmFilmKayit_Load(System.Object sender, System.EventArgs e)

{

if (StrGuncellenecekNo != null)//"")

{

TxtFilmNo.Enabled = false;

String SelectString;

SelectString = "SELECT FilmNo, FilmAdi, YonetmenNo,

YapimciNo, Sure, Aciklama, Kategori, Yili FROM Film WHERE FilmNo = \'" +

StrGuncellenecekNo + "\'";

SqlCommand SelectCmd1 = new SqlCommand(SelectString,

SqlConnection1);

DataSet DsDataSet;

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd1;

SqlDataAdapter1.SelectCommand.CommandText = SelectString;

try

{

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "Sonuc");

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

Page 88: C# projesi

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

TxtFilmNo.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.FilmNo"));

TxtFilmAdi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.FilmAdi"));

TxtYonetmenNo.DataBindings.Add(new Binding("Text",

DsDataSet, "Sonuc.YonetmenNo"));

TxtYapimciNo.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.YapimciNo"));

TxtSure.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Sure"));

TxtAciklama.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Aciklama"));

TxtKategori.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Kategori"));

TxtYapimYili.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Yili"));

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

}

}

}

Page 89: C# projesi

Müşteri Kayıt Formu

Liste: Müşteri Kayıt Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication9

{

public partial class FrmMusteriKayit : System.Windows.Forms.Form

{

public FrmMusteriKayit()

{

InitializeComponent();

}

private String StrGuncellenecekNo;

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

public void GuncellenecekNoyuAyarla(String StrGnclNo)

{

StrGuncellenecekNo = StrGnclNo;

}

private void CmdGonder_Click(System.Object sender, System.EventArgs e)

{

if (TxtAdi.Text.Trim() == "")

{

MessageBox.Show("Müşteri Adı bilgisini giriniz.");

TxtAdi.Focus();

return;

}

if (TxtSoyadi.Text.Trim() == "")

{

MessageBox.Show("Müşteri Soyadı bilgisini giriniz.");

TxtSoyadi.Focus();

Page 90: C# projesi

return;

}

if (TxtAdres.Text.Trim() == "")

{

MessageBox.Show("Adres bilgisini giriniz.");

TxtAdres.Focus();

return;

}

if (TxtKKNo.Text.Trim() == "")

{

MessageBox.Show("Kredi kartı numarası bilgisini giriniz.", "Hata",

MessageBoxButtons.OK);

TxtKKNo.Focus();

return;

}

else if (TxtKKNo.Text.Trim().Length != 16)

{

MessageBox.Show("Geçersiz kredi kartı bilgisi. Kredi kartı

numarasını tekrar giriniz.", "Hata", MessageBoxButtons.OK);

TxtKKNo.Focus();

return;

}

if (Convert.ToDateTime (DtpKKSKT.Text)< DateTime.Now)

{

MessageBox.Show("Geçersiz tarih.");

DtpKKSKT.Focus();

return;

}

if (StrGuncellenecekNo != null)//"")

{

String UpdString;

UpdString = "UPDATE Musteri SET Adi = @Adi, Soyadi = @Soyadi,

Adres = @Adres, Ilce = @Ilce, Il = @Il, PostaKodu = @PostaKodu, TelefonNo = @TelefonNo,

EPosta = @EPosta, DogumTarihi = @DogumTarihi, KrediKartiNo = @KrediKartiNo, KrediKartiSKT

= @KrediKartiSKT WHERE MusteriNo = " + StrGuncellenecekNo;

SqlCommand UpdateCmd1 = new SqlCommand(UpdString, SqlConnection1);

SqlDataAdapter1.UpdateCommand = UpdateCmd1;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 50, "Adi"));

SqlDataAdapter1.UpdateCommand.Parameters[0].Value = TxtAdi.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Soyadi", System.Data.SqlDbType.VarChar, 50,

"Soyadi"));

SqlDataAdapter1.UpdateCommand.Parameters[1].Value =

TxtSoyadi.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Adres", System.Data.SqlDbType.VarChar, 25,

"Adres"));

SqlDataAdapter1.UpdateCommand.Parameters[2].Value = TxtAdres.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Ilce", System.Data.SqlDbType.VarChar, 25, "Ilce"));

SqlDataAdapter1.UpdateCommand.Parameters[3].Value = TxtIlce.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Il", System.Data.SqlDbType.VarChar, 15, "Il"));

SqlDataAdapter1.UpdateCommand.Parameters[4].Value = TxtIl.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@PostaKodu", System.Data.SqlDbType.VarChar, 7,

"PostaKodu"));

SqlDataAdapter1.UpdateCommand.Parameters[5].Value =

TxtPostaKodu.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@TelefonNo", System.Data.SqlDbType.VarChar, 10,

"TelefonNo"));

SqlDataAdapter1.UpdateCommand.Parameters[6].Value =

TxtTelefonNo.Text;

Page 91: C# projesi

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@EPosta", System.Data.SqlDbType.VarChar, 50,

"EPosta"));

SqlDataAdapter1.UpdateCommand.Parameters[7].Value =

TxtEPosta.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@DogumTarihi", System.Data.SqlDbType.DateTime, 8,

"DogumTarihi"));

SqlDataAdapter1.UpdateCommand.Parameters[8].Value =

DtpDogumTarihi.Value;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@KrediKartiNo", System.Data.SqlDbType.VarChar, 16,

"KrediKartiNo"));

SqlDataAdapter1.UpdateCommand.Parameters[9].Value = TxtKKNo.Text;

SqlDataAdapter1.UpdateCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@KrediKartiSKT", System.Data.SqlDbType.DateTime, 8,

"KrediKartiSKT"));

SqlDataAdapter1.UpdateCommand.Parameters[10].Value =

DtpKKSKT.Value;

try

{

SqlConnection1.Open();

SqlDataAdapter1.UpdateCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt güncellendi");

}

else

{

String InsString;

InsString = "INSERT INTO Musteri(Adi, Soyadi, Adres, Ilce, Il,

PostaKodu, TelefonNo, EPosta, DogumTarihi, KrediKartiNo, KrediKartiSKT) VALUES (@Adi,

@Soyadi, @Adres, @Ilce, @Il, @PostaKodu, @TelefonNo, @EPosta, @DogumTarihi,

@KrediKartiNo, @KrediKartiSKT)";

SqlCommand InsertCmd1 = new SqlCommand(InsString, SqlConnection1);

SqlDataAdapter1.InsertCommand = InsertCmd1;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Adi", System.Data.SqlDbType.VarChar, 50, "Adi"));

SqlDataAdapter1.InsertCommand.Parameters[0].Value = TxtAdi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Soyadi", System.Data.SqlDbType.VarChar, 50,

"Soyadi"));

SqlDataAdapter1.InsertCommand.Parameters[1].Value =

TxtSoyadi.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Adres", System.Data.SqlDbType.VarChar, 25,

"Adres"));

SqlDataAdapter1.InsertCommand.Parameters[2].Value = TxtAdres.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Ilce", System.Data.SqlDbType.VarChar, 25, "Ilce"));

SqlDataAdapter1.InsertCommand.Parameters[3].Value = TxtIlce.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@Il", System.Data.SqlDbType.VarChar, 15, "Il"));

SqlDataAdapter1.InsertCommand.Parameters[4].Value = TxtIl.Text;

Page 92: C# projesi

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@PostaKodu", System.Data.SqlDbType.VarChar, 7,

"PostaKodu"));

SqlDataAdapter1.InsertCommand.Parameters[5].Value =

TxtPostaKodu.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@TelefonNo", System.Data.SqlDbType.VarChar, 10,

"TelefonNo"));

SqlDataAdapter1.InsertCommand.Parameters[6].Value =

TxtTelefonNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@EPosta", System.Data.SqlDbType.VarChar, 50,

"EPosta"));

SqlDataAdapter1.InsertCommand.Parameters[7].Value =

TxtEPosta.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@DogumTarihi", System.Data.SqlDbType.DateTime, 8,

"DogumTarihi"));

SqlDataAdapter1.InsertCommand.Parameters[8].Value =

DtpDogumTarihi.Value;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@KrediKartiNo", System.Data.SqlDbType.VarChar, 16,

"KrediKartiNo"));

SqlDataAdapter1.InsertCommand.Parameters[9].Value = TxtKKNo.Text;

SqlDataAdapter1.InsertCommand.Parameters.Add(new

System.Data.SqlClient.SqlParameter("@KrediKartiSKT", System.Data.SqlDbType.DateTime, 8,

"KrediKartiSKT"));

SqlDataAdapter1.InsertCommand.Parameters[10].Value =

DtpKKSKT.Value;

try

{

SqlConnection1.Open();

SqlDataAdapter1.InsertCommand.ExecuteNonQuery();

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

MessageBox.Show("Kayıt başarılı bir şekilde eklendi", "Kayıt

eklendi", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

this.Close();

}

private void CmdIptal_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

private void FrmMusteriKayit_Load(System.Object sender, System.EventArgs e)

{

if (StrGuncellenecekNo != null)//"")

{

String SelectString;

Page 93: C# projesi

SelectString = "SELECT Adi, Soyadi, Adres, Ilce, Il, PostaKodu,

TelefonNo, EPosta, DogumTarihi, KrediKartiNo, KrediKartiSKT FROM Musteri WHERE MusteriNo

= \'" + StrGuncellenecekNo + "\'";

SqlCommand SelectCmd1 = new SqlCommand(SelectString,

SqlConnection1);

DataSet DsDataSet;

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd1;

SqlDataAdapter1.SelectCommand.CommandText = SelectString;

try

{

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "Sonuc");

}

catch (SqlException MyException)

{

MessageBox.Show("Source: " + MyException.Source +

ControlChars.Cr + "Number: " + MyException.Number.ToString() + ControlChars.Cr + "State:

" + MyException.State.ToString() + ControlChars.Cr + "Class: " +

MyException.Class.ToString() + ControlChars.Cr + "Server: " + MyException.Server +

ControlChars.Cr + "Message: " + MyException.Message + ControlChars.Cr + "Procedure: " +

MyException.Procedure + ControlChars.Cr + "Line: " + MyException.LineNumber.ToString());

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

return;

}

TxtAdi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Adi"));

TxtSoyadi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Soyadi"));

TxtAdres.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Adres"));

TxtIlce.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Ilce"));

TxtIl.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.Il"));

TxtPostaKodu.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.PostaKodu"));

TxtTelefonNo.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.TelefonNo"));

TxtEPosta.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.EPosta"));

DtpDogumTarihi.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.DogumTarihi"));

TxtKKNo.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.KrediKartiNo"));

DtpKKSKT.DataBindings.Add(new Binding("Text", DsDataSet,

"Sonuc.KrediKartiSKT"));

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

}

}

}

Page 94: C# projesi

Rapor Formlarına İşlevsellik Kazandırmak

Raporlar formu günlük satışlarla, beğenilen filmlerle ve müşteri ayrıntılarıyla ilgili çeşitli raporlar görüntüler. Fakat bu raporların hepsi aynı anda görüntülenmezler. Üç değişik Rapor formu var: Günlük Satışlar, Beğenilen Filmler ve Müşteri Ayrıntıları.

Şekil: Günlük Satış Raporu formu

Şekil: Beğenilen Filmler Raporu formu

Page 95: C# projesi

Şekil: Müşteri Ayrıntıları Raporu formu

Aşağıdaki değişkenler Raporlar formunda tanımlanmalıdır:

SqlConnection SqlConnection1 = new SqlConnection(Module1.StrConnectionString);

'Connection nesnesini tanımlar

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

'Data adapter nesnesini tanımlar

DataSet DsDataSet;

'Kayıt kümesini tanımlar

public static int IntRaporTipi;

'Formlar arasında kullanılan değişken tanımı

Raporlar Formunun Tam Kod Dökümü

Liste: Raporlar Formunun Kodu

using System;

using System.Windows.Forms;

using Microsoft.VisualBasic;

using System.Data;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsApplication9

{

public partial class FrmRaporlar : System.Windows.Forms.Form

{

SqlConnection SqlConnection1 = new

SqlConnection(Module1.StrConnectionString);

SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter();

DataSet DsDataSet;

public static int IntRaporTipi;

private void FrmReport_Load(System.Object sender, System.EventArgs e)

{

double DblToplam=0.0;

DataRow RowPicker1;

String StrSorgu;

LvwRapor.Items.Clear();

DsDataSet = new DataSet();

Page 96: C# projesi

try

{

ColumnHeader ColumnHeader1 = new ColumnHeader();

ColumnHeader ColumnHeader2 = new ColumnHeader();

ColumnHeader ColumnHeader3 = new ColumnHeader();

ColumnHeader ColumnHeader4 = new ColumnHeader();

ColumnHeader ColumnHeader5 = new ColumnHeader();

ColumnHeader ColumnHeader6 = new ColumnHeader();

ColumnHeader ColumnHeader7 = new ColumnHeader();

ColumnHeader ColumnHeader8 = new ColumnHeader();

ColumnHeader ColumnHeader9 = new ColumnHeader();

ColumnHeader ColumnHeader10 = new ColumnHeader();

if (IntRaporTipi == 2)

{

Text = "Müşteri Ayrıntıları Raporu";

TxtToplamSatisTutari.Enabled = false;

LblToplamSatisTutari.Visible = false;

LvwRapor.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3,

ColumnHeader4, ColumnHeader5, ColumnHeader6, ColumnHeader7, ColumnHeader8, ColumnHeader9,

ColumnHeader10});

ColumnHeader1.Text = "Müşteri No";

ColumnHeader2.Text = "Adı";

ColumnHeader3.Text = "Soyadı";

ColumnHeader4.Text = "Adres";

ColumnHeader5.Text = "İlçe";

ColumnHeader6.Text = "İl";

ColumnHeader7.Text = "Posta Kodu";

ColumnHeader8.Text = "Telefon No";

ColumnHeader9.Text = "E-Posta";

ColumnHeader10.Text = "Doğum Tarihi";

StrSorgu = "SELECT MusteriNo, Adi, Soyadi, Adres,

Ilce, Il, PostaKodu, TelefonNo, EPosta, DogumTarihi FROM Musteri a WHERE ( (SELECT

COUNT(*) FROM Siparisler WHERE a.MusteriNo = Siparisler.MusteriNo) >= 5)";

SqlCommand SelectCmd0 = new SqlCommand(StrSorgu,

SqlConnection1);

DsDataSet = new DataSet();

SqlDataAdapter1.SelectCommand = SelectCmd0;

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet, "MusteriRaporu");

foreach (DataRow tempLoopVar_RowPicker1 in

DsDataSet.Tables["MusteriRaporu"].Rows)

{

RowPicker1 = tempLoopVar_RowPicker1;

String[] StrMusteriAyrintilari = new String[] {

Convert.ToString(RowPicker1["MusteriNo"]), Convert.ToString(RowPicker1["Adi"]),

Convert.ToString(RowPicker1["Soyadi"]), Convert.ToString(RowPicker1["Adres"]),

Convert.ToString(RowPicker1["Ilce"]), Convert.ToString(RowPicker1["Il"]),

Convert.ToString(RowPicker1["PostaKodu"]), Convert.ToString(RowPicker1["TelefonNo"]),

Convert.ToString(RowPicker1["EPosta"]), Convert.ToString(RowPicker1["DogumTarihi"]) };

LvwRapor.Items.Add(new

ListViewItem(StrMusteriAyrintilari));

}

}

else if (IntRaporTipi == 1)

{

Text = "Beğenilen Filmler Raporu";

TxtToplamSatisTutari.Enabled = false;

LblToplamSatisTutari.Visible = false;

Page 97: C# projesi

LvwRapor.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3,

ColumnHeader4, ColumnHeader5, ColumnHeader6});

ColumnHeader1.Text = "Film No";

ColumnHeader2.Text = "Film Adı";

ColumnHeader3.Text = "Yonetmen";

ColumnHeader4.Text = "Yapimci";

ColumnHeader5.Text = "Kategori";

ColumnHeader6.Text = "Yapım Yılı";

StrSorgu = "SELECT a.FilmNo, a.FilmAdi, b.Adi, c. Adi,

a.Kategori, a.Yili FROM Film a, Yonetmen b, Yapimci c WHERE FilmNo IN (SELECT FilmNo FROM

Video WHERE VideoNo IN (SELECT b.VideoNo FROM Siparisler a, SiparisAyrinti b WHERE

a.SiparisNo=b.SiparisNo AND a.SiparisTarihi > DateADD(day, -7, GetDate()) GROUP BY

b.VideoNo )) AND a.YonetmenNo = b.YonetmenNo AND a.YapimciNo = c.YapimciNo";

SqlCommand SelectCmd1 = new SqlCommand(StrSorgu,

SqlConnection1);

SqlDataAdapter1.SelectCommand = SelectCmd1;

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlConnection1.Open();

SqlDataAdapter1.Fill(DsDataSet,

"BegenilenFilmlerRaporu");

foreach (DataRow tempLoopVar_RowPicker1 in

DsDataSet.Tables["BegenilenFilmlerRaporu"].Rows)

{

RowPicker1 = tempLoopVar_RowPicker1;

String StrKategori;

if (RowPicker1.IsNull(4))

{

StrKategori = "";

}

else

{

StrKategori =

Convert.ToString(RowPicker1[4]);

}

int IntYapimYili;

if (RowPicker1.IsNull(5))

{

IntYapimYili = 0;

}

else

{

IntYapimYili = Convert.ToInt32 (RowPicker1[5]);

}

String[] StrSatisAyrintilari = new String[] {

Convert.ToString(RowPicker1[0]), Convert.ToString(RowPicker1[1]),

Convert.ToString(RowPicker1[2]), Convert.ToString(RowPicker1[3]), StrKategori,

Convert.ToString(IntYapimYili) };

LvwRapor.Items.Add(new

ListViewItem(StrSatisAyrintilari));

}

}

else

{

Text = "Günlük Satış Raporu";

TxtToplamSatisTutari.Visible = true;

LblToplamSatisTutari.Visible = true;

LvwRapor.Columns.AddRange(new

System.Windows.Forms.ColumnHeader[] {ColumnHeader1, ColumnHeader2, ColumnHeader3,

ColumnHeader4, ColumnHeader5, ColumnHeader6});

ColumnHeader1.Text = "Sipariş No";

ColumnHeader2.Text = "Sipariş Tarihi";

ColumnHeader3.Text = "Film No";

Page 98: C# projesi

ColumnHeader4.Text = "Film Adı";

ColumnHeader5.Text = "Sipariş Miktarı";

ColumnHeader6.Text = "Sipariş Tutarı";

StrSorgu = "SELECT DISTINCT a.SiparisNo,

a.SiparisTarihi, d.FilmNo, d.FilmAdi, a.ToplamMiktar, a.SiparisTutari FROM Siparisler a,

SiparisAyrinti b, Video c, Film d WHERE a.SiparisNo = b.SiparisNo AND b.VideoNo =

c.VideoNo AND c.FilmNo = d.FilmNo AND a.SiparisTarihi > DateADD(day, -1, GetDate()) ORDER

BY a.SiparisNo";

SqlCommand SelectCmd3 = new SqlCommand(StrSorgu,

SqlConnection1);

SqlDataAdapter1.SelectCommand = SelectCmd3;

SqlDataAdapter1.SelectCommand.CommandText = StrSorgu;

SqlDataAdapter1.Fill(DsDataSet, "SatisRaporu");

foreach (DataRow tempLoopVar_RowPicker1 in

DsDataSet.Tables["SatisRaporu"].Rows)

{

RowPicker1 = tempLoopVar_RowPicker1;

String[] StrSatisAyrintilari = new String[] {

Convert.ToString(RowPicker1[0]), Convert.ToString(RowPicker1[1]),

Convert.ToString(RowPicker1[2]), Convert.ToString(RowPicker1[3]),

Convert.ToString(RowPicker1[4]), Convert.ToString(RowPicker1[5]) };

LvwRapor.Items.Add(new

ListViewItem(StrSatisAyrintilari));

DblToplam = DblToplam + Convert.ToInt64

(RowPicker1[5]); //Toplam satış tutarı hesaplanıyor

}

TxtToplamSatisTutari.Text = Convert.ToString(

DblToplam);

}

}

catch (Exception MyException)

{

MessageBox.Show("Hata oluştu :" + Constants.vbLf +

MyException.ToString());

}

SqlConnection1.Close();

SqlDataAdapter1.Dispose();

}

private void MmnuCikis_Click(System.Object sender, System.EventArgs e)

{

this.Close();

}

}

}