2017-07-18 9 views
0

Je crée une application Windows pour gérer les informations sur les élèves. J'utilise une base de données LocalDB et j'ai les copies de <DBName>.MDF et <DBName>_Log.LDF. Comme Visual Studio avec MSSQLLocalDB déjà installé dans mon ordinateur portable, je suis capable de se connecter à la base de données et l'application fonctionne très bien.Impossible de se connecter à un fichier de base de données .mdf dans une application Windows à partir d'une machine client

Je viens de copier les fichiers de construction avec les fichiers DB sur mon ordinateur client et j'ai essayé d'ouvrir l'application Windows. Mais l'application de retour ci-dessous erreurs lors de son accès tente de la base de données:

Le Sous-jacent fourni Impossible d'ouvrir »
attente intérieure:. Serveur non accessible ou non disponible

Je suis à peu près sûr . que ma machine cliente n'a pas d'outils client SQL installé, il tout à fait possible que le défaut de connecter le fichier de base de données .MDF

maintenant, mes questions sont les suivantes:

  1. Est-il vraiment possible de se connecter à un fichier de base de données .mdf à partir d'une application Windows sur un ordinateur client sans avoir à installer de gros outils? Comme mon client ne veut pas installer de gros outils sur son système

  2. Si ma première question est Oui, Comment pouvons-nous y parvenir? Des modifications sont-elles nécessaires dans mon code ou mon fichier de configuration?

  3. Si cela nécessitait de petits outils à installer dans l'application client, quels sont-ils?

  4. Si le fichier de base de données .MDF ne fonctionne pas du tout sur la machine cliente, existe-t-il des alternatives? Veuillez suggérer.

Ma chaîne de connexion:

<connectionStrings> 
    <add name="SchoolDBEntities" 
     connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\SchoolDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" /> 
</connectionStrings> 
+0

Vous pouvez supprimer ce commentaire maintenant Eraj - blocs de code doivent être précédé d'une ligne blanche pour fonctionner correctement. – halfer

+0

S'il vous plaît lire [Dans quelles circonstances puis-je ajouter "urgent" ou d'autres phrases similaires à ma question, afin d'obtenir des réponses plus rapides?] (// meta.stackoverflow.com/q/326569) - le résumé est que ce n'est pas un moyen idéal de s'adresser aux volontaires, et est probablement contre-productif pour obtenir des réponses. Merci de ne pas ajouter ceci à vos questions. – halfer

+1

Vous ne pouvez pas accéder au fichier mdf sans installer le serveur Sql sur l'ordinateur client. Au moins, vous devez installer Sql un serveur express. –

Répondre

0

@Chetan Ranpariya est presque correcte. Si vous utilisez MS SQL Server - quelle que soit la version - SQL Server doit être installé sur la machine où les fichiers mdf/ldf sont en ligne ou du moins là où le programme SQL Server peut y accéder.

Si j'ai bien lu votre question, vous avez installé MSSQL sur votre ordinateur portable et c'est la raison pour laquelle cela fonctionne. MSSQL n'est pas installé sur l'ordinateur ou le réseau du client, de sorte que vos appels à la base de données échouent. En ce qui concerne les autres éléments à utiliser, cette question est beaucoup trop générale. Cela dépend de beaucoup de facteurs.

John

+0

@Chetan Ranpariya merci pour vos contributions. Je donne essayer d'installer SQL Server Express dans l'un des machines client et tester si je peux établir une connexion. Je vous ferai savoir la mise à jour bientôt. – Eraj

+0

Merci pour votre réponse. Ce sera vraiment utile si vous pouvez expliquer les autres facteurs que je peux décider quelles autres options je peux utiliser pour connecter la base de données. Si vous pouvez donner des exemples, ce sera très utile. apprécier ton aide. – Eraj

+0

Vous devez tenir compte de la quantité de données à enregistrer, par exemple la taille de la base de données; Quelle est la performance acceptable - c'est à quelle vitesse les données doivent être retournées au client/utilisateur; combien de clients accèderont aux données simultanément; quel genre de protection des données; chiffrement de données. Quelqu'un a déjà mentionné SQL Express. Pour certains scénarios, vous pouvez utiliser MS Access. Regardez aussi MySQL qui est également gratuit. Pour de très petits ensembles de données, vous pouvez également utiliser XML, qui ne nécessite aucun logiciel spécial. Faire une recherche google sur quelque chose comme "logiciel de base de données" – John