benim sql server management studio ve visual studio kullanarak yaptığım bi uygulama var diyelim. bu server'daki bir database'e ulaşmak için bize otomatik bir connection string oluşturuluyor. o da şu şekilde:

"Data Source=Bilgisayarınİsmi(ve aynı zamanda srever'ın ismi de oluyor bu);Initial Catalog=Databaesinİsmi;Integrated Security=True";

ama ben database'ime bu mangement studio'dan değil de bilgisayarın içine koyduğum herhangi bi yerden ulaşmak istiyorum. hatta uygulamanın exe'sinin olduğu yere database'imi koyup ordan ulaşmak istiyorum. connection string'im nasıl olmalı böyle olunca?

 

database ayni bilgisayardaysa sadece nokta kullanabilirsin.
"data source=.;catalog=db;integrated security=true"

sql server express ise is degisir

"data source=.\sqlexpress;catalog=db;integrated security=true"


nokta yerine (local) de is gorur. parantez dahil.

erich

sunucu adı ve veritabanı ismini bir tanım dosyası ya da registry kaydı ile parametrik olmasını sağlamak en iyisidir.
daha sonra farklı kurulmuş instance veya geçici veritabanından çalışma gibi ihtiyaçlarda sorun olmaz.

thebug

onu sormuyorum aslında tam olarak. yani management studio'nun içinde bulunan database'e bağlanarak uygulamanın çalıştırılmasında sorun olmuyor. nokta koysam da buraya bağlanıp ordaki database'i kullanıcak. ama mesela masaüstümde bir database dosyası var. bunu management studio'ya attach etmeden direk masaüstündeyken kullanamıyor muyum? kullanıyorsam nasıl. mesela data source'a masaüstünün path'ını yazarsam olmuyor.
niye bununla uğraşıyorsun denilirse sql server kurulu olmayan bi bilgisayarda bu uygulamayı nasıl çalıştırırım. oraya gider soru. benim bilgisayarımda işe yarayan connection string başka bilgisayarda işe yaramayacak. onun için onu uygun bi şekilde düzenlemek istiyorum.

aslında şöyle bi sorum vardı önceden cevap gelmedi (git: 160174)

tepedeki psychedelic adam

database explorer'dan girip connect to database desen, daha sonra data source kısmını microsoft sql server database file olarak seçip, masaüstündeki database dosyasınında hedefini verip bağlansan olmaz mı acaba? attach etmeden kullanmak istiyorsan eğer bunu yapıp databese explorer'dan yeni attach ettiğin database'in üstüne sağ tıklayıp properties'den connection string'ini alırsın böylece elle yazmaktan daha sağlıklı olur. yani tam olarak istediğin böyle birşey mi? mesela bende şöyle bir string çıkıyor,
/*

Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\ocanal\Desktop\bulmaca.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

*/

mesela sen bir setup oluşturduğun zaman c içerisinde bir path açacaksın bu şekilde yapıp

AttachDbFilename =programın kurulduğu yer/veritabanı.mdf;...

şeklinde yapsan olur sanırım.

ocanal

haci sql server direk windows servisleri ile alakali oladugu icin fiziksel path yazmakla olmaz o is. dedigin gibi bir projeyi ancak access, excel vs.. seklinde veritabani kullanan projelerde yapabilirsin.

sql server kullandigin icin direk bi servera baglanip authenticate yapmasi gerekiyor. yani kullanacagin bilgisayarda sql server yuklu olmali. ya da remote bir sql server a baglanmalisin. cok iyi anlatamadim ama idare et.

ozza

@ocanal:

böyle bir connection string'le oldu istediğim. ama sonra setup oluşturunca kendi bilgisayarımda kurduğumda bile çalışmadı. ama visual studio 2010'da release modunda debug yok herhalde ya da ben göremedim varsa da. Ctrl+Shift+F6'yla da olmuyor. onu yapamadım yani setup dosyasını oluştururken. belki onunla alakalıdır. neyse senden sonraki cevabı görünce de vazgeçtim zaten.

String connStr = "AttachDbFilename=" + Environment.CurrentDirectory.ToString() + "\\database.mdf;Integrated Security=True";

ha yok kendi bilgisayarımda kurunca çalışıyormuş, pardon :)

@ozza:

anladım ve aslında bütün sorularımın temelinde bu yatıyordu :) yani evet access gibi filan daha basit düzeyde herkeste olabilecek bişey üzerinden yapmam lazım o zaman.

tepedeki psychedelic adam

bu soruya son cevabımı vererek noktayı koymak istiyorum.

bu setup dosyasını oluştururken prerequisites listesinde framework, windows installer vs. nin yanında sql server 2005 express de varmış dikkat etmemişim. onu da olması gerekenlere ekleyince uygulamamın kurulumunu yaparken başka alakasız bir bilgisayarda sql server 2005 express edition'ı da kuruyor ve sonrasında da çalışıyor uygulama. ama bunun için aynı zamanda connection string'in en son hali de şöyle oldu:

"Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Environment.CurrentDirectory.ToString() + "\\database.mdf;Integrated Security=True";

ha ama tabii basit bir uygulama için sql server'ı kullanıcıya indirtip, kurdurmak filan ne kadar verimlidir o tartışılır :)
bir de connection string böyle olunca benimki express olmadığı için bende çalışmyıor o ayrı :)

tepedeki psychedelic adam
1

mobil görünümden çık