Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Keine Verbindung zur lokalen SQL Datenbankdatei
abc89
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

Keine Verbindung zur lokalen SQL Datenbankdatei

beantworten | zitieren | melden

verwendetes Datenbanksystem: mit Visual Studio 2012 Express erstellte Datenbankdatei (Dienstbasierte Datenbank)

Hallo zusammen,
ich habe eine Testanwendung (Windows Forms) geschrieben in C# mit dem Visual Studio 2012 (Desktop) Express. In dem Projekt habe ich eine "Dienstbasierte Datenbank" hinzugefügt. Auf meinem Entiwkclungsrechner funktioniert der Datenzugriff ohne Probleme.

Ich habe das Programm mit der Datenbank im Releasemodus kompiliert und wollte es auf einem Windows 7 Home Premium Rechner ausführen.

Das Programm startet aber die Verbindung kann nicht zur Datenbankdatei hergestellt werden (Fehlermeldung:
Fehler
"Es kann keine Verbindung zur Datenbank hergestellt werden"
). Die Datenbank ist vorhanden und hat keine Anmeldeinformationen.

Benötige ich für dieses Vorhanden einen Treiber auf dem Rechner, auf dem ich Probleme habe, für den Datenbankzugriff?

Mit freundlichen Grüßen
abc89
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 6.819
Herkunft: Waidring

beantworten | zitieren | melden

Hallo abc89,
Zitat
Benötige ich für dieses Vorhanden einen Treiber auf dem Rechner, auf dem ich Probleme habe, für den Datenbankzugriff?
Ja den SQL Server (Express).

Es gibt aber auch rein lokale Alternativen, bei denen nichts installiert werden muss, wie z.B. SQL Compact. Im Forum haben wir das bereits einige diskutiert. Bitte benutze die Forensuche und poste die besten Treffer hier. Danke.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.764
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Siehe auch :

http://www.seven-c.de/files/datenbankenhowto.htm

Wie ist Dein Connectionstring ? Sicher dass der richtig ist ?

Grüße Bernd
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BerndFfm am .
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
abc89
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

Vielen Dank für die Infos.

Ich habe mich für die SQL Compact Variante entschieden. Aus Gewusst wie: Bereitstellen einer SQL Server Compact 4.0-Datenbank mit einer Anwendung habe ich mir die benötigten Infos geholt. Die Punkte unter "Private dateibasierte Bereitstellung" habe ich alle ausgeführt. Beim Starten auf einem anderen Rechner kommt jetzt die Fehlermeldung:
Fehler
Der angegebene Speicheranbieter kann nicht in der Konfiguration gefunden werden oder ist ungültig. ---> System.ArgumentException: Der angeforderte .Net Framework-Datenprovider kann nicht gefunden werden. Er ist ggf. nicht installiert.

Der Connectionstring ist:
<add name="DatabaseEntities" connectionString="metadata=res://*/Libary.Entities.Datamodel.csdl|res://*/Libary.Entities.Datamodel.ssdl|res://*/Libary.Entities.Datamodel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\ControlContainer\Database\Database.sdf&quot;" providerName="System.Data.EntityClient" />

Da ich die Dlls mit kopiere, dürfte ich die SQL Compact Runtime ja nicht brauchen?!

Grüße

PS:
Die komplette App.Config sieht folgendermaßen aus:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>
  <connectionStrings>
    <add name="DatabaseEntities" connectionString="metadata=res://*/Libary.Entities.Datamodel.csdl|res://*/Libary.Entities.Datamodel.ssdl|res://*/Libary.Entities.Datamodel.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\ControlContainer\Database\Database.sdf&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>
private Nachricht | Beiträge des Benutzers
abc89
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

Lösung:

Ebenfalls die Dll System.Data.SqlServerCe.Entity.dll mit lokaler Kopie = true einbinden und in der App.Config folgendes einfügen:
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SqlServerCe.4.0"></remove>
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
  </system.data>


Danke!
private Nachricht | Beiträge des Benutzers
xxMUROxx
myCSharp.de - Member

Avatar #avatar-3236.jpg


Dabei seit:
Beiträge: 1.552
Herkunft: Südtirol/Italien

beantworten | zitieren | melden

Hallo abc89,

es gibt auch die Möglichkeit des LocalDB. Ich verwende dies auch in meinen Projekten als lokale Datenbank, da diese gegenüber SQLCe doch etwas mächtiger ist. D.h. LocalDb hat die Funktionalität eines SQL-Server Express.

Gruß,
Michael
Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 9.975

beantworten | zitieren | melden

Nur das LocalDB genauso wie Sql Express installiert werden muss, eine EmbeddedDB wie z.b. SQLite nicht.
private Nachricht | Beiträge des Benutzers
xxMUROxx
myCSharp.de - Member

Avatar #avatar-3236.jpg


Dabei seit:
Beiträge: 1.552
Herkunft: Südtirol/Italien

beantworten | zitieren | melden

Ja, das stimmt. Auf den Entwicklerrechner wird es mit VS2012 mitinstalliert. Bei Kunden kann man, wenn man mit ClickOnce arbeitet bei der Installation auswählen dass LocalDB mit installiert wird. (auf jeden Fall glaube ich das, müsste es am Abend testen)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von xxMUROxx am .
Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp
private Nachricht | Beiträge des Benutzers