Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
6726
Tıklama
0
Öne Çıkarma
c# da ilişkili sql tablolarında update ve insert yapımı
G
14 yıl
Teğmen
Konu Sahibi

(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 >

K
14 yıl
Yarbay

Tane tane ne yapmak istediğini yazarsan yardımcı olabilirim.


Bu mesaja 1 cevap geldi.
T
13 yıl
Çavuş

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 >
Bu mesaja 1 cevap geldi.
S
13 yıl
Yüzbaşı

@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ı?



K
13 yıl
Yarbay

Viewdaki mantığa benzer birşekilde yapabilirsin. Aşağıdaki linkte anlatılmış. Takıldığın yer olursa sorabilirsin.

linkBulink:)



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.