none
Local Database Bağlantı Satırı Hatası RRS feed

  • 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..


    9 Ekim 2015 Cuma 09:28

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

    9 Ekim 2015 Cuma 10:10
    Moderatör
  • Mesaji oku. O database zaten var ya da dosyayi acamiyorum ya da yeri UNC pathde diyor. 

    Tam yolunu vermeyi dene.


    9 Ekim 2015 Cuma 11:13
    Yanıtlayıcı
  • 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.

    9 Ekim 2015 Cuma 12:15

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

    9 Ekim 2015 Cuma 10:10
    Moderatör
  • Ö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");



    9 Ekim 2015 Cuma 10:58
  • Mesaji oku. O database zaten var ya da dosyayi acamiyorum ya da yeri UNC pathde diyor. 

    Tam yolunu vermeyi dene.


    9 Ekim 2015 Cuma 11:13
    Yanıtlayıcı
  • @cem1987_,

    mdf bir dosya uzantisi. O provider degil. Windows forms uygulamasi ile web.config'in ne alakasi var? (localdb)\v11.0 zaten server adi :)

    9 Ekim 2015 Cuma 11:28
    Yanıtlayıcı
  • Ç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

    9 Ekim 2015 Cuma 11:47
    Moderatör
  • 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.

    9 Ekim 2015 Cuma 12:15
  • 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
    Problem çözüldü teşekkür ederim.
    9 Ekim 2015 Cuma 12:17
  • 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

    9 Ekim 2015 Cuma 14:11
    Moderatör
  • 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.
    9 Ekim 2015 Cuma 15:05
  • Ş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
    22 Mart 2020 Pazar 21:42
  • Ş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


    3.5 sene once yazılanlardan farklı ne var burada?


    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.

    22 Mart 2020 Pazar 23:48
    Yanıtlayıcı