Jump to content
TNC-TR
adam4

C# Sql Cümlelerini Insert Eden Servis

Recommended Posts

C# SQL Cümlelerini Insert Eden Servis

Selamlar arkadaşlar.C# da bir servis hazırlamam gerekiyor.İştee atıyorum satıs database'imin içinde satış diye bir tablo var.

Ben bu tabloyu 30 dakikada  bir başka bir veritabanına insert yaptıracağım.satıs.sql diye dışarıda tuttugum bir cümlem var.Bu servis bu cumleyi 30 dakikada bir çalıştıracak.

Nasıl hazırlarım böyle bir servisi.Yardımlarınızı bekliyorum.Şimdiden teşekkür ederim.

Share this post


Link to post
Share on other sites

Bunun için trigger kullanabilirsin yada schedule tanımlayıp her X dakikada bir şu kodu çalıştırabilirsiniz.

insert into yedek_db select * from asil_db 

şeklinde kolonlar felan birebir aynıysa bu kod işinizi görecektir.

Share this post


Link to post
Share on other sites

Hocam kolonlar aynı olacak.Bunun ayarlı içinde bir form dizayn etmeyi düşünüyorum.Ayaralrıyla alakalı.

Yalnız ben cümleyi dışardan almak istiyorum yani şu şekilde.

oODPqQ.png

 

Yani dışarda böyle cümlelerim var benim atıyorum 30 dakikada bir bunları çalıştıracak ve bir log kaydı bırakacak.Bu cümle çalıştırıldı ve başarılı diye.

Birde sizi bulmuşkan şunuda sormak isterimm.

Projemde cGenel diye bi class açtım ve içinde şu var ; 


        public string conString = ("Server=DESKTOP-ADAM4;Database=adam4;Trusted_Connection=True");

Ben bütün classlarımda veritabanı bağlantısını burdan sağladım.Şimdi ben bu projeyi başka bilgisayara atınca haliyle çalışmayacak.

Ben şöyle bir şey yapmak istiyorum.Forma sqla girerken girdiğim Login ve Passwordu girince combobox'a datebaseler gelecek.Ordan seçip bağlantı kuracağım.

İlk olarak bunu yapmak istiyorum.Birde projeyi aktardığım bilgisayarda SQL server yoksada 

lOa2RE.png

 

Şöyle bir şey yapmak istiyorum.Adı ne bilmiyorum bunun ama bunu nasıl yaparım.

 

 

 

 

Share this post


Link to post
Share on other sites
adam4, 10 saat önce yazdı:

Hocam kolonlar aynı olacak.Bunun ayarlı içinde bir form dizayn etmeyi düşünüyorum.Ayaralrıyla alakalı.

Yalnız ben cümleyi dışardan almak istiyorum yani şu şekilde.

oODPqQ.png

 

Yani dışarda böyle cümlelerim var benim atıyorum 30 dakikada bir bunları çalıştıracak ve bir log kaydı bırakacak.Bu cümle çalıştırıldı ve başarılı diye.

Birde sizi bulmuşkan şunuda sormak isterimm.

Projemde cGenel diye bi class açtım ve içinde şu var ; 


        public string conString = ("Server=DESKTOP-ADAM4;Database=adam4;Trusted_Connection=True");

Ben bütün classlarımda veritabanı bağlantısını burdan sağladım.Şimdi ben bu projeyi başka bilgisayara atınca haliyle çalışmayacak.

Ben şöyle bir şey yapmak istiyorum.Forma sqla girerken girdiğim Login ve Passwordu girince combobox'a datebaseler gelecek.Ordan seçip bağlantı kuracağım.

İlk olarak bunu yapmak istiyorum.Birde projeyi aktardığım bilgisayarda SQL server yoksada 

lOa2RE.png

 

Şöyle bir şey yapmak istiyorum.Adı ne bilmiyorum bunun ama bunu nasıl yaparım.

 

 

 

 

son dediğini pek anlamadım ama bağlantı cümleni en basit haliyle bir text dosyasına yazıp bunu da program.cs te okutursan her yerde çalıştırırsın projeni. Örnek olarak;

string conStrPath = Environment.CurrentDirectory + "\\constr.text";

cGenel.conString = File.ReadAllText(conStrPath);

bu arada cGenel içinde değişkeni static bir property olarak tanımlarsan rahat edersin. Örnek; 

public static string conString {get; set;}

 

Share this post


Link to post
Share on other sites

Birincisi bağlantı cümlesi text te felan tutulmaz. Teknik olarka tutarsın okursun işini görür ama.  Güvenliğe aykırı.

İlk dediğin şeyi sql server da job çalıştırman lazım bir ob oluşturacaksın öncelikle. Bu job Exec ****  şeklinde alt alta senin bu sql dosyacıklarını çalıştıracak. Sorun yok yapılır yani.

2. Sorun için ise local sql dosyası kullanabilirsin. Fakat bahsettiğim birincideki job işini yapamazsın onda. Sql Express felan kurup halledebilirsn ama işini.

Share this post


Link to post
Share on other sites

Hocam bahsettiğiniz Job olayı şunlar sanırım ;

https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008/ms191439(v=sql.100)

http://www.veritabani.gen.tr/2017/07/14/sql-server-job-olusturmak/

 

Bu job olayını biraz açarmısınız.Mantığı nedir yani.benim anladığım kadarıyla bu belirtilen süre zarfında bişeyler yapıyor ama ne yapıyor anlamadım.

Birde ben şimdi şu şekilde düşünüyorum.

İzmirdeki veritabanımda satış tablom var.

aynı şekilde istanbuldaki veritabanımdada satış tablom var.Kolonlar aynı hiç bir fark yok.Linked Server ile İstanbul'daki veritabanını izmire çektim.

Benim yapmak istedim şu kısaca.Dışarıda cümlelerim var.Bu cümleler izmirdeki satışı istanbuldaki satışa select insert yapıyor.

Ben bu cümleyi kendi belirlediğim sürede yani bi from sayfam var.Burdan 30 dakika seçersem 30 dakikada bir çalıştıracak.

Süreyide kendim belirlemek istiyorum yani.İlk yapmak istediğim şey bu.Job bu işi yapar mı.Birde aslında ben şöyle düşünmüştüm ki bunu daha önce gördüğüm için söylüyorum elimdede aslında böyle bir örnek var.Bir servis yazılmış c#'da o çalıştırıyor bu cümleleri.Jobla bir bağlantısı yok sanırım.

 

2.konuya gelirsek.
 

SELECT name  FROM sys.databases; 

Bununda sistemdeki databaseleri buluyorum.

 

public string conString = ("Server=DESKTOP-ADAM4;Database=adam4;Trusted_Connection=True");

 

Şimdi burada Server kısmını elle alabilirim.

[email protected];Database=adam4;Trusted_Connection=True

Ama ben Server'i degilde Login ve Password'u alarak bağlantı yapmak istiyorum.

Databaseleride Combox'ta listeletip ordan çekmek istiyorum.

Yani şu ; 

G98RM7.png

 

Local sql araştırdım biraz eve gindince deneyeceğim onuda.Teşekkürler bu arada cevap için.

 

 

Share this post


Link to post
Share on other sites
pairs, 2 saat önce yazdı:

Birincisi bağlantı cümlesi text te felan tutulmaz. Teknik olarka tutarsın okursun işini görür ama.  Güvenliğe aykırı.

İlk dediğin şeyi sql server da job çalıştırman lazım bir ob oluşturacaksın öncelikle. Bu job Exec ****  şeklinde alt alta senin bu sql dosyacıklarını çalıştıracak. Sorun yok yapılır yani.

2. Sorun için ise local sql dosyası kullanabilirsin. Fakat bahsettiğim birincideki job işini yapamazsın onda. Sql Express felan kurup halledebilirsn ama işini.

hocam en basit haliyle dedim bende zaten. güvenli olarak nasıl tutulur ? yanlış anlamayın bilgilenmek amaçlı soruyorum. 

  • Like 1

Share this post


Link to post
Share on other sites
adam4, 19 saat önce yazdı:

Hocam bahsettiğiniz Job olayı şunlar sanırım ;

https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008/ms191439(v=sql.100)

http://www.veritabani.gen.tr/2017/07/14/sql-server-job-olusturmak/

 

Bu job olayını biraz açarmısınız.Mantığı nedir yani.benim anladığım kadarıyla bu belirtilen süre zarfında bişeyler yapıyor ama ne yapıyor anlamadım.

Birde ben şimdi şu şekilde düşünüyorum.

İzmirdeki veritabanımda satış tablom var.

aynı şekilde istanbuldaki veritabanımdada satış tablom var.Kolonlar aynı hiç bir fark yok.Linked Server ile İstanbul'daki veritabanını izmire çektim.

Benim yapmak istedim şu kısaca.Dışarıda cümlelerim var.Bu cümleler izmirdeki satışı istanbuldaki satışa select insert yapıyor.

Ben bu cümleyi kendi belirlediğim sürede yani bi from sayfam var.Burdan 30 dakika seçersem 30 dakikada bir çalıştıracak.

Süreyide kendim belirlemek istiyorum yani.İlk yapmak istediğim şey bu.Job bu işi yapar mı.Birde aslında ben şöyle düşünmüştüm ki bunu daha önce gördüğüm için söylüyorum elimdede aslında böyle bir örnek var.Bir servis yazılmış c#'da o çalıştırıyor bu cümleleri.Jobla bir bağlantısı yok sanırım.

 

2.konuya gelirsek.
 

SELECT name  FROM sys.databases; 

Bununda sistemdeki databaseleri buluyorum.

 

public string conString = ("Server=DESKTOP-ADAM4;Database=adam4;Trusted_Connection=True");

 

Şimdi burada Server kısmını elle alabilirim.

[email protected];Database=adam4;Trusted_Connection=True

Ama ben Server'i degilde Login ve Password'u alarak bağlantı yapmak istiyorum.

Databaseleride Combox'ta listeletip ordan çekmek istiyorum.

Yani şu ; 

G98RM7.png

 

Local sql araştırdım biraz eve gindince deneyeceğim onuda.Teşekkürler bu arada cevap için.

 

 

SSIS Kullanman daha saglıklı olacak senin durumunda. Bir SSIS paketi yapıp bunu sql de job a koyarsın. Belirlediğin zamanlarda çalışıp dataları aktarır.

2.Sorunu yanlışmı anladım ben. Lopcalde bi data base tutmak istiyordn.

ylmz025, 18 saat önce yazdı:

hocam en basit haliyle dedim bende zaten. güvenli olarak nasıl tutulur ? yanlış anlamayın bilgilenmek amaçlı soruyorum. 

Direk dışarıda text te tutmak şundan yanlış. Meraklı bir kullanıcı açar sonra verileri siler.

Share this post


Link to post
Share on other sites

image.thumb.png.b4b1109754e4f1c0821f5cada69c09e5.png

Bahsettiğim SSIS i bu ekranda Alttan 2. olan Sql Server Integration Services Package seçerek ekliyorsunuz. SSIS ile gerekirse bilgi çekildikten sonra arada c# kodu bile kullanabilirsiniz. Ftp ye yüklersniz yani bir sürü şey yapıp daha sonra verinin aktarımını gerçekleştirebilirsiniz. Hem çok gelişmiş hemde basit işler içinde kullanılabilir. SSIS konusunda yardımcı olabilirim takıldıgın yerde sorarsın.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×