C# setup projesine sql veritabanı ekleme

Kodla Büyü

untimely

Seçkin Üye
Seçkin Üye
Mesajlar
269
Arkadaşlar basit bir kütüphane takip programı yaptım yalnız oluşturduğum setup dosyası yalnızca kendi bilgisayarımda çalışıyor. Microsoft SQL server 2008 r2 kullanıyorum veri tabanı için. Oluşturduğum programın başka bilgisayarlardada veritabanını çalıştırması için ne yapmam gerekiyor bilen arkadaşlardan detaylı bir açıklama link vs. bekliyorum şimdiden teşekkür ederim.
 
Sayın hocam, o bilgisayarlarda da SQL server kurulu olması gerekli ki biliyorsunuz bu ücretli bir sunucu. Belki express sürümleriyle iş görülebilir ama yine de sıkıntı çıkarabilir.
Benim tavsiyem SQLite denilen veritabanı kütüphanesini kullanmanız. Sadece birkaç dosyayı, programınızın klasöründe bulunduruyorsunuz, oluşturduğunuz veritabanına SQL ile işlem yapabiliyorsunuz. Ayrıca bu veritabanıyla işlem yapmayı sağlayan, portable programlarla da veritabanı dosyası üzerinde istediğiniz her türlü işlemi yapabiliyorsunuz. Siz bu konuyu bir araştırın.
 
hocam kendi bilgisayarımda setup oluşturdum ve benim bilgisayarımda sql server kurulu, başka bir sql server kurulu bilgisayardada denediğimde ondada setup açılıyor fakat veritabanı işlemleri yapılmıyor sanırım bağlantı yolu benim bilgisayarımda farklı ve başka bilgisayardaki sql server bağlantı yolu farklı ... olay şu benim setup dosyamı sql server kurulu bir başka bilgisayarda çalıştırmam için bu farklı bağlantı yollarını nasıl tanıtmam gerekli nasıl otomatik olarak o bağlantı yolunu algılayabilir.
 
erdcannet' Alıntı:
sayın hocam kolay gelsin, yapmanız gereken parametre ile sql serveri kurmak.
https://technet.microsoft.com/en-us/lib ... (v=sql.110).aspx#Install
http://www.matthanson.ca/2012/04/sql-se ... tallation/
Ardından, tüm kullanıcı, veritabanı, stored proc, tablo gibi elemanların hepsini script olarak yine kurulum esnasında çalıştırmanız gerekiyor.
Kolay gelsin hocam
Hocam yanıtınız için teşekkür ederim.
Fakat bu işi halletmenin daha kısa bir yolu yok mu?
 
Hocam kısa yolu localde çalışacaksanız diğer hocamın bahsettiği sqlite kullanabilirsiniz. kurulum işlemleri sıkıntılı olsa da gerçekten ihtiyacınız var ise, ağda diğer kullanıcılarda veritabanına bağlanacaksa sql server'ı dediğim yöntem ile kurdurabilirsiniz. süreç zorluyor ama sonuçta prof. bi iş çıkıyor. digiturk için hazırladığım bi uygulama vardı teknik servis otomasyonu bulabilirsem onda kullanmıştım. ağ üzerinde ki diğer kullanıcılarında kullandığı bi sistemdi. Arşivde var ise paylaşırım burdan.
 
erdcannet' Alıntı:
Hocam kısa yolu localde çalışacaksanız diğer hocamın bahsettiği sqlite kullanabilirsiniz. kurulum işlemleri sıkıntılı olsa da gerçekten ihtiyacınız var ise, ağda diğer kullanıcılarda veritabanına bağlanacaksa sql server'ı dediğim yöntem ile kurdurabilirsiniz. süreç zorluyor ama sonuçta prof. bi iş çıkıyor. digiturk için hazırladığım bi uygulama vardı teknik servis otomasyonu bulabilirsem onda kullanmıştım. ağ üzerinde ki diğer kullanıcılarında kullandığı bi sistemdi. Arşivde var ise paylaşırım burdan.

Hocam ilginiz için teşekkür ederim. sorumu şu şekilde yöneltmek istiyorum birde.

ben SQLserver 2008 r2 üzerinden gideceğim

SqlConnection baglan = new SqlConnection("Data Source=ALİ;Initial Catalog=TAKİP;Integrated Security=True");

veritabanı bağlantı kodum bu şekilde...Ben içinde "datagrid","listview", ekleme,silme,liste temizleme,güncelleme,arama vs. işlemleri yapan güzel bir takip programı yazdım.

şimdi sıkıntım şu

başka bilgisayrda SQLserver 2008 r2 yüklü bile olsa

SqlConnection baglan = new SqlConnection("Data Source=ALİ;Initial Catalog=TAKİP;Integrated Security=True");

datasource farklı bir isimde olduğu için yine açmayacak bu bağlantı yolunu otomatik olarak aldırmanın bir yolu var mı?c# da.

birde setup oluştururken c# da SQLserver 2008 r2 kullanıcıya kurdurtmanın yolu nedir nasıl dahil edeceğim. hadi diyelim kullanıcıya bunu kurdurttuk daha sonra kullanıcıya .bak uzantılı database i ekletmek için onuda projeye dahil edip içine eklemek gerekli...

bunu nasıl yapabilirim projeye yani setup dosyasına kurulum ve .bak database i eklemeyi...

tekrardan teşekkürler.
 
untimely' Alıntı:
erdcannet' Alıntı:
Hocam kısa yolu localde çalışacaksanız diğer hocamın bahsettiği sqlite kullanabilirsiniz. kurulum işlemleri sıkıntılı olsa da gerçekten ihtiyacınız var ise, ağda diğer kullanıcılarda veritabanına bağlanacaksa sql server'ı dediğim yöntem ile kurdurabilirsiniz. süreç zorluyor ama sonuçta prof. bi iş çıkıyor. digiturk için hazırladığım bi uygulama vardı teknik servis otomasyonu bulabilirsem onda kullanmıştım. ağ üzerinde ki diğer kullanıcılarında kullandığı bi sistemdi. Arşivde var ise paylaşırım burdan.

Hocam ilginiz için teşekkür ederim. sorumu şu şekilde yöneltmek istiyorum birde.

ben SQLserver 2008 r2 üzerinden gideceğim

SqlConnection baglan = new SqlConnection("Data Source=ALİ;Initial Catalog=TAKİP;Integrated Security=True");

veritabanı bağlantı kodum bu şekilde...Ben içinde "datagrid","listview", ekleme,silme,liste temizleme,güncelleme,arama vs. işlemleri yapan güzel bir takip programı yazdım.

şimdi sıkıntım şu

başka bilgisayrda SQLserver 2008 r2 yüklü bile olsa

SqlConnection baglan = new SqlConnection("Data Source=ALİ;Initial Catalog=TAKİP;Integrated Security=True");

datasource farklı bir isimde olduğu için yine açmayacak bu bağlantı yolunu otomatik olarak aldırmanın bir yolu var mı?c# da.

birde setup oluştururken c# da SQLserver 2008 r2 kullanıcıya kurdurtmanın yolu nedir nasıl dahil edeceğim. hadi diyelim kullanıcıya bunu kurdurttuk daha sonra kullanıcıya .bak uzantılı database i ekletmek için onuda projeye dahil edip içine eklemek gerekli...

bunu nasıl yapabilirim projeye yani setup dosyasına kurulum ve .bak database i eklemeyi...

tekrardan teşekkürler.
Hocam ilk sorun için önerim şu şekilde:
örneğin kurulum esnasında c# uygulaman veri tabanına bağlanacak. senin bağlanmasını istediğin veritabnı ismni direk yazmaman gerkiyor. Çünkü müşterinin pcnin adını bilme imkanımız yok:) Bu sebeple, hazırladığın c# uygulaman ilk çalıştığında kurulum ayarları yapmalı. ağda ki serverları görüntüleyecek ufak bi kod yazarsın, ağda çalışan birden fazla sqlserver olabilir bu sebeple ismini senin verdiğin bir servername atıyorum kütüphanetakip adında bir serveri kullanıcın seçmesini isteyebilirsin.kullanıcının seçmiş olduğu makinenin adı ve servernamini registry de tutabilirsin. Program çalışmaya başladığında da yine bu registryde ki server ve makine ismi sqlconneciton bağlantına parametre olarak verebilrisin. Ardından yine bu kısımda kullanıcı raporlama vs yaptıracaksa şirket ismi şirket logosu gibi herzaman kullanacağı ayarlarıda yaptırabilirsin.
ikinci sorun için arşive bakmam gerekecek elimde ki örnek tam istediğin işi yapıyordu ama üzerinde bayağı bi zaman geçti bulabilisem paylaşacağım. iyi akşamlar dilerim.
 
İlgilendiğiniz için teşekkür ederim hocam. Bulunca paylaşırsanızda makbule geçer. Tekrar tekrar teşekkür ederim.
 
hocam
SqlConnection baglan = new SqlConnection("Data Source=ALİ;Initial Catalog=TAKİP;Integrated Security=True");
datasource kısmında yazan makine adı kısmı ise onu şöyle otomatik hale getirebilirsin..

SqlConnection baglan = new SqlConnection("Data Source="+Server.MachineName+";Initial Catalog=TAKİP;Integrated Security=True");

windows formda , System.Environment.MachineName
web formda , HttpContext.Current.Server.MachineName
namespace içerinden geliyor ama sql server adı ismi gibi özellikler için şuraya bakabilirsin
http://www.dotnetfunda.com/forums/show/ ... sql-server
 
emilcay' Alıntı:
hocam
SqlConnection baglan = new SqlConnection("Data Source=ALİ;Initial Catalog=TAKİP;Integrated Security=True");
datasource kısmında yazan makine adı kısmı ise onu şöyle otomatik hale getirebilirsin..

SqlConnection baglan = new SqlConnection("Data Source="+Server.MachineName+";Initial Catalog=TAKİP;Integrated Security=True");

windows formda , System.Environment.MachineName
web formda , HttpContext.Current.Server.MachineName
namespace içerinden geliyor ama sql server adı ismi gibi özellikler için şuraya bakabilirsin
http://www.dotnetfunda.com/forums/show/ ... sql-server

Hocam öncelikle teşekkür ediyorum.
Evet benim kodda kullandığım ( datasource kısmındaki isim SERVERNAME ismi olacak) onu benim koddaki
SqlConnection baglan = new SqlConnection("Data Source=ALİ;Initial Catalog=TAKİP;Integrated Security=True");

Data Source=ALİ buraya nasıl aldırabilirim sitede var ama tam anlayamadım.Bunu yazabilirseniz sevinirim.

Birde mümkünmü bilmiyorum ama

Initial Catalog=TAKİP buradaki database ismini otomatik aldırmanın bir yolu var mıdır acaba.
 
hocam yukarıda yazdığım gibi değiştireceksin işte o satırı. yazman gereken aşağıdaki gibi
SqlConnection baglan = new SqlConnection("Data Source="+Server.MachineName+";Initial Catalog=TAKİP;Integrated Security=True");

database adını otomatik aldırman biraz zor bir sürü veritabanı var sen hangini kullanıcan programda onu nasıl otomatikleştireceksin
mecbur kendin elle gireceksin.
daha ayrıntılı için yukarıda verdiğim linke bakabilirsin
 
Hocam illa sql server kullanıcam diyorsan Sql Server Express versiyonunu kullanmalısın. Ayrıca sql serverı projene dahil etmek için Inno Setup ı tavsiye ederim. Veya http://www.csharpnedir.com/articles/read/?id=1032 buradaki link sana faydalı olacaktır. Örnek projede gördüğün gibi LoadSql sınıfı Installer dan türüyür ve program çalıştığında (setup) ilgili ayarları yerine getiriyor. Zaten makaleyi yazan arkadaş ta void CreateDB() alt rutininde kullandığı nasıl kullanacağınızı açıklamış.

Eğer projeniz çok büyük çaplı değilse FireBird gibi bir veritabanı sunucusu kullanabilirsiniz. Zaten sql transact komutları 3 aşağı 5 yukarı aynı olduğundan zorlanacağınızı düşünmüyorum. (Hazır Veri komponenti kullanıyorsanız SqlDataSource durum farklı). Bağlantı kodu için http://www.connectionstrings.com/ tüm veritabanlarının bağlantı yollarını size sunar. Kolay gelsin.
 
Geri
Üst