Şimdi Ara

c# da ilişkili sql tablolarında update ve insert yapımı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
6.698
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • (kitap_id'ler ilişkili)ilişki iki tablom var.c# üzerinden bu tablolara veir eklemek ve datagridview üzerinden textboxa çektiğim verileri değiştiren sql komutları neler acaba.
    kitap tablosundaki kitap_id ile yayin tablosundaki yayin_id otomatik geliyor.

    kitap
    ------
    kitap_id
    kitap_adi
    yazari

    yayin
    ---------
    yayin_id
    kitap_id
    yayin_evi
    yayin_tarihi



    < Bu mesaj bu kişi tarafından değiştirildi giray91 -- 12 Aralık 2011; 13:24:11 >



  • Tane tane ne yapmak istediğini yazarsan yardımcı olabilirim.
  • Aşağıda sana bir tablo yapısı ve bu tablo yapısında kullanabileceğim ekle sil güncelle listele ve idye göre koşullu listeleme üzerine methodları yazdım.

    Bu arada veritabanı bağlantısı olarak web.config önce bağlantını tanımla.
    <appSettings>
    <add key="Conn" value="Data Source=.;Initial Catalog=KitapDB;User ID=sa;Password=1" />
    </appSettings>

    1-Tabloları oluştur
    2- Store procedure oluştur.
    3- Kitap_Class ve Yayin_Class adında class dosyalarını oluştur.
    4- Kitap_Islemleri ce Yayin_Islemleri adında class dosyalarını oluştur.
    5- sayfanın codebehind kısmından bunların örneğini oluştur.
    örnek
    Kitap_Class Kosul = new Kitap_Class();
    Kitap_Islemleri Islem = new Kitap_Islemleri();


    Kosul. dediğinde kitap tablosunda yer alan field ler gelir.
    Islem. dediğinde kullanabileceğin methodlar gelir.

    Örnek bir repeater veya grid e verileri listeleyeceksen eğer burada kulllanman gereken method

    Eğer hepsi ise

    Repeater1.DataSource=Islem.Kitap_Listele();
    Repeater1.DataBind();

    Eğer Koşullu ise

    Kosul.KitapID=1

    Repeater1.DataSource=Islem.Kitap_Listele_Kosul(Kosul);
    Repeater1.DataBind();

    şekliden yapmalısın.

    Ekleme ve güncelleme gibi işlemlerdede önce örneğindeki kosul. diyip çıkan parametrelere gelecek değerleri vermelisin daha sonra methodu çağırmalısın.
    örnek

    Kosul.KitapAdi ="Turgut'un günlüğü";
    Kosul.Yazari="Turgut Aydoğdu";
    if(Isle.Kitap_Ekle(Kosul)==true)
    {
    label1.text="Kitap Eklendi";
    }
    else{
    label1.text="hata var metodu debug et."
    }



    TABLOLARIN

     
    Create Table Kitap
    (
    KitapID int IDENTITY(1,1)Primary Key,
    KitapAdi varchar(100),
    Yazari varchar(100)
    )
    Create Table Yayin
    (
    YayinID int IDENTITY(1,1)Primary Key,
    KitapID int,
    YayinEvi varchar(100),
    YayinTarihi datetime
    )



    STORE PROCEDURE
     

    -- *** Kitap *** --
    ------------------------------------------------------------
    CREATE PROC Kitap_Ekle(
    @KitapAdi varchar(100),
    @Yazari varchar(100)
    )
    AS
    Insert Into Kitap(KitapAdi,Yazari)
    values(@KitapAdi,@Yazari)
    GO

    CREATE PROC Kitap_Guncelle(
    @KitapID int,
    @KitapAdi varchar(100),
    @Yazari varchar(100)
    )
    AS
    Update Kitap Set
    KitapAdi = @KitapAdi,
    Yazari = @Yazari
    Where KitapID = @KitapID
    GO

    CREATE PROC Kitap_Sil(
    @KitapID int
    )
    AS
    Delete From Kitap
    Where KitapID = @KitapID
    GO

    CREATE PROC Kitap_Listele
    AS
    Select * From Kitap Order By KitapID Desc
    GO

    CREATE PROC Kitap_Listele_Kosul(
    @KitapID int
    )
    AS
    Select * From Kitap
    Where KitapID = @KitapID
    GO

    -- *** Yayin *** --
    ------------------------------------------------------------
    CREATE PROC Yayin_Ekle(
    @KitapID int,
    @YayinEvi varchar(100),
    @YayinTarihi datetime
    )
    AS
    Insert Into Yayin(KitapID,YayinEvi,YayinTarihi)
    values(@KitapID,@YayinEvi,@YayinTarihi)
    GO

    CREATE PROC Yayin_Guncelle(
    @YayinID int,
    @KitapID int,
    @YayinEvi varchar(100),
    @YayinTarihi datetime
    )
    AS
    Update Yayin Set
    KitapID = @KitapID,
    YayinEvi = @YayinEvi,
    YayinTarihi = @YayinTarihi
    Where YayinID = @YayinID
    GO

    CREATE PROC Yayin_Sil(
    @YayinID int
    )
    AS
    Delete From Yayin
    Where YayinID = @YayinID
    GO

    CREATE PROC Yayin_Listele
    AS
    Select * From Yayin Order By YayinID Desc
    GO

    CREATE PROC Yayin_Listele_Kosul(
    @YayinID int
    )
    AS
    Select * From Yayin
    Where YayinID = @YayinID
    GO


    KİTAP CLASS
     
    using Microsoft.VisualBasic;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Data;
    using System.Diagnostics;

    public class Kitap_Class
    {
    private int _KitapID;
    private string _KitapAdi;
    private string _Yazari;

    public int KitapID
    {
    get { return _KitapID; }
    set { _KitapID = value; }
    }

    public string KitapAdi
    {
    get { return _KitapAdi; }
    set { _KitapAdi = value; }
    }

    public string Yazari
    {
    get { return _Yazari; }
    set { _Yazari = value; }
    }

    }



    YAYIN CLASS
    using Microsoft.VisualBasic; 
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Data;
    using System.Diagnostics;

    public class Yayin_Class
    {
    private int _YayinID;
    private int _KitapID;
    private string _YayinEvi;
    private DateTime _YayinTarihi;

    public int YayinID
    {
    get { return _YayinID; }
    set { _YayinID = value; }
    }

    public int KitapID
    {
    get { return _KitapID; }
    set { _KitapID = value; }
    }

    public string YayinEvi
    {
    get { return _YayinEvi; }
    set { _YayinEvi = value; }
    }

    public DateTime YayinTarihi
    {
    get { return _YayinTarihi; }
    set { _YayinTarihi = value; }
    }

    }


    KİTAP METHODLARIN
    using System; 
    using System.Data;
    using System.Data.SqlClient;

    public class Kitap_Islemleri
    {

    public bool Kitap_Ekle(Kitap_Class degisken)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Kitap_Ekle", Conn);
    Kom.CommandType = CommandType.StoredProcedure;
    Kom.Parameters.AddWithValue("@KitapAdi", degisken.KitapAdi);
    Kom.Parameters.AddWithValue("@Yazari", degisken.Yazari);

    try
    {
    if (Kom.Connection.State == ConnectionState.Closed)
    {
    Kom.Connection.Open();
    }
    Kom.ExecuteNonQuery();
    return true;
    }
    catch (Exception)
    {
    return false;
    }
    finally { Conn.Close(); Conn.Dispose(); }
    }

    public bool Kitap_Sil(Kitap_Class degisken)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Kitap_Sil", Conn);
    Kom.CommandType = CommandType.StoredProcedure;

    Kom.Parameters.AddWithValue("@KitapID", degisken.KitapID);

    try
    {
    if (Kom.Connection.State == ConnectionState.Closed)
    {
    Kom.Connection.Open();
    }
    Kom.ExecuteNonQuery();
    return true;
    }
    catch (Exception)
    {
    return false;
    }
    finally { Conn.Close(); Conn.Dispose(); }
    }

    public bool Kitap_Guncelle(Kitap_Class degisken)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Kitap_Guncelle", Conn);
    Kom.CommandType = CommandType.StoredProcedure;

    Kom.Parameters.AddWithValue("@KitapID", degisken.KitapID);
    Kom.Parameters.AddWithValue("@KitapAdi", degisken.KitapAdi);
    Kom.Parameters.AddWithValue("@Yazari", degisken.Yazari);

    try
    {
    if (Kom.Connection.State == ConnectionState.Closed)
    {
    Kom.Connection.Open();
    }
    Kom.ExecuteNonQuery();
    return true;
    }
    catch (Exception)
    {
    return false;
    }
    finally { Conn.Close(); Conn.Dispose(); }
    }

    public DataSet Kitap_Listele()
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Kitap_Listele", Conn);
    Kom.CommandType = CommandType.StoredProcedure;
    SqlDataAdapter da = new SqlDataAdapter(Kom);
    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
    }
    public DataSet Kitap_Listele_Kosul(Kitap_Class degisken)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Kitap_Listele_Kosul", Conn);
    Kom.CommandType = CommandType.StoredProcedure;

    Kom.Parameters.AddWithValue("@KitapID", degisken.KitapID);
    SqlDataAdapter da = new SqlDataAdapter(Kom);
    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
    }
    public Kitap_Class Kitap_Detay(int ID)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Kitap_Listele_Kosul", Conn);

    Kom.Parameters.AddWithValue("@KitapID", ID);

    Kom.CommandType = CommandType.StoredProcedure;
    if (Conn.State == ConnectionState.Closed)
    {
    Conn.Open();
    }
    SqlDataReader dr = Kom.ExecuteReader(CommandBehavior.CloseConnection);
    Kitap_Class Kitap = null;
    if (dr.HasRows)
    {
    Kitap = new Kitap_Class();
    if (dr.Read())
    {
    Kitap.KitapID=Convert.ToInt32(dr["KitapID"]);
    Kitap.KitapAdi=dr["KitapAdi"].ToString();
    Kitap.Yazari=dr["Yazari"].ToString();
    }
    }
    dr.Close();
    return Kitap;
    }
    }


    YAYIN METHODLARIN
    using System; 
    using System.Data;
    using System.Data.SqlClient;

    public class Yayin_Islemleri
    {

    public bool Yayin_Ekle(Yayin_Class degisken)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Yayin_Ekle", Conn);
    Kom.CommandType = CommandType.StoredProcedure;
    Kom.Parameters.AddWithValue("@KitapID", degisken.KitapID);
    Kom.Parameters.AddWithValue("@YayinEvi", degisken.YayinEvi);
    Kom.Parameters.AddWithValue("@YayinTarihi", degisken.YayinTarihi);

    try
    {
    if (Kom.Connection.State == ConnectionState.Closed)
    {
    Kom.Connection.Open();
    }
    Kom.ExecuteNonQuery();
    return true;
    }
    catch (Exception)
    {
    return false;
    }
    finally { Conn.Close(); Conn.Dispose(); }
    }

    public bool Yayin_Sil(Yayin_Class degisken)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Yayin_Sil", Conn);
    Kom.CommandType = CommandType.StoredProcedure;

    Kom.Parameters.AddWithValue("@YayinID", degisken.YayinID);

    try
    {
    if (Kom.Connection.State == ConnectionState.Closed)
    {
    Kom.Connection.Open();
    }
    Kom.ExecuteNonQuery();
    return true;
    }
    catch (Exception)
    {
    return false;
    }
    finally { Conn.Close(); Conn.Dispose(); }
    }

    public bool Yayin_Guncelle(Yayin_Class degisken)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Yayin_Guncelle", Conn);
    Kom.CommandType = CommandType.StoredProcedure;

    Kom.Parameters.AddWithValue("@YayinID", degisken.YayinID);
    Kom.Parameters.AddWithValue("@KitapID", degisken.KitapID);
    Kom.Parameters.AddWithValue("@YayinEvi", degisken.YayinEvi);
    Kom.Parameters.AddWithValue("@YayinTarihi", degisken.YayinTarihi);

    try
    {
    if (Kom.Connection.State == ConnectionState.Closed)
    {
    Kom.Connection.Open();
    }
    Kom.ExecuteNonQuery();
    return true;
    }
    catch (Exception)
    {
    return false;
    }
    finally { Conn.Close(); Conn.Dispose(); }
    }

    public DataSet Yayin_Listele()
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Yayin_Listele", Conn);
    Kom.CommandType = CommandType.StoredProcedure;
    SqlDataAdapter da = new SqlDataAdapter(Kom);
    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
    }
    public DataSet Yayin_Listele_Kosul(Yayin_Class degisken)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Yayin_Listele_Kosul", Conn);
    Kom.CommandType = CommandType.StoredProcedure;

    Kom.Parameters.AddWithValue("@YayinID", degisken.YayinID);
    SqlDataAdapter da = new SqlDataAdapter(Kom);
    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
    }
    public Yayin_Class Yayin_Detay(int ID)
    {
    SqlConnection Conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
    SqlCommand Kom = new SqlCommand("Yayin_Listele_Kosul", Conn);

    Kom.Parameters.AddWithValue("@YayinID", ID);

    Kom.CommandType = CommandType.StoredProcedure;
    if (Conn.State == ConnectionState.Closed)
    {
    Conn.Open();
    }
    SqlDataReader dr = Kom.ExecuteReader(CommandBehavior.CloseConnection);
    Yayin_Class Yayin = null;
    if (dr.HasRows)
    {
    Yayin = new Yayin_Class();
    if (dr.Read())
    {
    Yayin.YayinID=Convert.ToInt32(dr["YayinID"]);
    Yayin.KitapID=Convert.ToInt32(dr["KitapID"]);
    Yayin.YayinEvi=dr["YayinEvi"].ToString();
    Yayin.YayinTarihi= Convert.ToDateTime(dr["YayinTarihi"]);
    }
    }
    dr.Close();
    return Yayin;
    }
    }


    NOT: eğer .net 4.0 kullanıyorsan. methodlardaki ConfigurationSettings leri ConfigurationManager yap.



    < Bu mesaj bu kişi tarafından değiştirildi targit -- 21 Şubat 2012; 16:00:45 >




  • @targit bende benzer bir durumdan muzdaribim yardımcı olursan sevinirim.
    sql tarafında 1 ana tablom var ve bununla ilişkili birkaç yardımcı tablom var.
    bu tabloları bir stored procedure ile ilişkilendirdim.
    csharp tarafında datagride oluşturduğum stored procedure u bağladım.Veri çekmekte falan sorun yok.
    İstediğim şu : datagridde yaptığım herhang bir değişikliği bir buton vasıtası ile güncelleyebilirmiyim ?
    Stored procedure ile bağladığım için direk sqldataadapter.update() yapamıyorum.

    Nasıl yapabilirim , fikri olan var mı?
  • Viewdaki mantığa benzer birşekilde yapabilirsin. Aşağıdaki linkte anlatılmış. Takıldığın yer olursa sorabilirsin.

    linkBulink:)
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.