En iyi yanıtlayıcılar
Local Database Bağlantı Satırı Hatası

Soru
-
Merhaba;
Bir windows uygulaması hazırladım. Bu uygulama bitene kadar bağlantı satırım aşağıdaki gibiydi.
SqlConnection mbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\maliyet\maliyet\verisepeti.mdf;Integrated Security=True");
Uygulama bitince uygulamayı başka bilgisayara kurduğumda veritabanına bağlantı sorunu yaşamamak için bağlantı satırımı aşağıdaki gibi değiştirdi.
SqlConnection mbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + Application.StartupPath + "\\verisepeti.mdf;Integrated Security=False");
Daha sonra uygulamamı çalıştırarak bir sorun olup olmadığını test ettim. Herhangi bir sorun yok. Daha sonra uygulamanın setup'ını oluşturdum. Oluşturmuş olduğum setup dosyasını başka bir bilgisayara kurdum. Programı çalıştırdığımda aşağıdaki hatayı veriyor.
Kodlarımı incelediğimde "E:\maliyet\maliyet\verisepeti.mdf" gibi bir satır yok. Yukarıda anlattığım gibi setup oluşturmadan önce bağlantı satırımı değiştirdim. Kodlarımda arattırdığımda böyle bir satır olmadığı halde neden hala bu satırı görüyor acaba. Nedenlerini yazabilir misiniz..
Yanıtlar
-
Bu application startuppath'ı kim uydurdu bilmiyorum ama herkez connection stringine bunu koyuyor. Birde Integrated Security true değilse sql kullanıcıadı/şifre vermeniz gerekir.
SqlConnection mbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\\verisepeti.mdf;Integrated Security=True");
www.mvcblog.org
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com- Yanıt Olarak Öneren CetinBasozEditor 9 Ekim 2015 Cuma 11:18
- Yanıt Olarak İşaretleyen Serkan Canseven 9 Ekim 2015 Cuma 13:29
-
Mesaji oku. O database zaten var ya da dosyayi acamiyorum ya da yeri UNC pathde diyor.
Tam yolunu vermeyi dene.
- Düzenleyen CetinBasozEditor 9 Ekim 2015 Cuma 11:21
- Yanıt Olarak İşaretleyen Serkan Canseven 9 Ekim 2015 Cuma 13:29
-
Bu şekilde çözüldü.
SqlConnection sbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\verisepeti.mdf;Integrated Security=True");
\verisepeti.mdf kısmını \\verisepeti.mdf şeklinde yazmışım. Önay Bey ve Çetin Bey'e doğru yönlendirmelerinden dolayı teşekkür ederim.
- Düzenleyen Sedat Kaynar 9 Ekim 2015 Cuma 12:57
- Yanıt Olarak İşaretleyen Serkan Canseven 9 Ekim 2015 Cuma 13:29
Tüm Yanıtlar
-
Bu application startuppath'ı kim uydurdu bilmiyorum ama herkez connection stringine bunu koyuyor. Birde Integrated Security true değilse sql kullanıcıadı/şifre vermeniz gerekir.
SqlConnection mbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\\verisepeti.mdf;Integrated Security=True");
www.mvcblog.org
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com- Yanıt Olarak Öneren CetinBasozEditor 9 Ekim 2015 Cuma 11:18
- Yanıt Olarak İşaretleyen Serkan Canseven 9 Ekim 2015 Cuma 13:29
-
Önay Bey;
Cevap için teşekkür ederim. C# dili konusunda öncelikle bu forumdan ve googledan yararlanarak kendimi geliştirmeye çalışıyorum. Application.StartupPath yönteminide böyle bularak kullandım. Aslında daha önce yapmış olduğum başka bir uygulamada da Application.StartupPath'i kullanmıştım ve sorunsuz çalışmıştı. Neyse konuya gelecek olursam Önay Bey, sizin verdiğiniz bağlantı satırını kullanıp Visual Studio programında Start etiğimde aşağıda resimde bulunan hatayı verdi. İnceleyebilir misiniz..
//SqlConnection sbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\maliyet\maliyet\verisepeti.mdf;Integrated Security=True"); //SqlConnection sbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + Application.StartupPath + "\\verisepeti.mdf;Integrated Security=False"); SqlConnection sbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\\verisepeti.mdf;Integrated Security=True");
- Düzenleyen Sedat Kaynar 9 Ekim 2015 Cuma 11:01
-
Mesaji oku. O database zaten var ya da dosyayi acamiyorum ya da yeri UNC pathde diyor.
Tam yolunu vermeyi dene.
- Düzenleyen CetinBasozEditor 9 Ekim 2015 Cuma 11:21
- Yanıt Olarak İşaretleyen Serkan Canseven 9 Ekim 2015 Cuma 13:29
-
-
Çetin hocamın dediği gibi , eğer kendi bilgisayarınızda localdb ye attach edilmiş aynı dosya varsa attach edemeyecektir.
Bir başka makineye install edip denermisin. Tabi setup oluştururken mdf dosyasının application foldere koyulduğundan emin olun.
www.mvcblog.org
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com -
Bu şekilde çözüldü.
SqlConnection sbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\verisepeti.mdf;Integrated Security=True");
\verisepeti.mdf kısmını \\verisepeti.mdf şeklinde yazmışım. Önay Bey ve Çetin Bey'e doğru yönlendirmelerinden dolayı teşekkür ederim.
- Düzenleyen Sedat Kaynar 9 Ekim 2015 Cuma 12:57
- Yanıt Olarak İşaretleyen Serkan Canseven 9 Ekim 2015 Cuma 13:29
-
Merhaba;
Bir windows uygulaması hazırladım. Bu uygulama bitene kadar bağlantı satırım aşağıdaki gibiydi.
SqlConnection mbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\maliyet\maliyet\verisepeti.mdf;Integrated Security=True");
Uygulama bitince uygulamayı başka bilgisayara kurduğumda veritabanına bağlantı sorunu yaşamamak için bağlantı satırımı aşağıdaki gibi değiştirdi.
SqlConnection mbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + Application.StartupPath + "\\verisepeti.mdf;Integrated Security=False");
Daha sonra uygulamamı çalıştırarak bir sorun olup olmadığını test ettim. Herhangi bir sorun yok. Daha sonra uygulamanın setup'ını oluşturdum. Oluşturmuş olduğum setup dosyasını başka bir bilgisayara kurdum. Programı çalıştırdığımda aşağıdaki hatayı veriyor.
Kodlarımı incelediğimde "E:\maliyet\maliyet\verisepeti.mdf" gibi bir satır yok. Yukarıda anlattığım gibi setup oluşturmadan önce bağlantı satırımı değiştirdim. Kodlarımda arattırdığımda böyle bir satır olmadığı halde neden hala bu satırı görüyor acaba. Nedenlerini yazabilir misiniz..
C:\ nın ıcındekı mdf ı yanı provıderınızı dızın olarak degıl örnek:verisepetı.mdf olarak belırtın bıede connectıon strıngınızı web.confıg dosyası ıcınde alırsanızı daha kolay olur localdb bölumunu yanı sqlde hangı servername kullanıyorsınız onu connectıon strıngınıze tanımlamanız lazım ıyı calısmalar
-
Bu şekilde çözüldü.
SqlConnection sbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\verisepeti.mdf;Integrated Security=True");
\verisepeti.mdf kısmını \\verisepeti.mdf şeklinde yazmışım. Önay Bey ve Çetin Bey'e doğru yönlendirmelerinden dolayı teşekkür ederim.
ters slash'ların olayla bir alakası yok. "c:\\klasörbir\\klasöriki\\dosya.bir" ile @"c:\klasörbir\lasöriki\dosya.bir" arasında bir fark yok. Path içinde wildchar a ihtiyaç olmadığı için aynı şey ikiside;
bu arada bundan sonraki projelerinde, connectio stringini hard-code etme, config de tut. Bu tarz şeyler için kodu değiştirmene gerek kalmaz ;)
www.mvcblog.org
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com -
Bu şekilde çözüldü.
SqlConnection sbaglanti = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\verisepeti.mdf;Integrated Security=True");
\verisepeti.mdf kısmını \\verisepeti.mdf şeklinde yazmışım. Önay Bey ve Çetin Bey'e doğru yönlendirmelerinden dolayı teşekkür ederim.
ters slash'ların olayla bir alakası yok. "c:\\klasörbir\\klasöriki\\dosya.bir" ile @"c:\klasörbir\lasöriki\dosya.bir" arasında bir fark yok. Path içinde wildchar a ihtiyaç olmadığı için aynı şey ikiside;
bu arada bundan sonraki projelerinde, connectio stringini hard-code etme, config de tut. Bu tarz şeyler için kodu değiştirmene gerek kalmaz ;)
www.mvcblog.org
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
Anladım teşekkür ederim. Config yöntemini araştıracağım. -
Şu şekilde sorun çözülüyor:
public static SqlConnection dbConn = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = |DataDirectory|\YourDbName.mdf;Integrated Security=True");
MsSqlLocalDb kurulu bilgisayarlarda sorunsuz çalışıyor.
c# windows form uygulaması için geçerlidir
- Düzenleyen icakici 22 Mart 2020 Pazar 21:43
-
Şu şekilde sorun çözülüyor:
public static SqlConnection dbConn = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = |DataDirectory|\YourDbName.mdf;Integrated Security=True");
MsSqlLocalDb kurulu bilgisayarlarda sorunsuz çalışıyor.
c# windows form uygulaması için geçerlidir
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.