2 votes

Connectionstring : est-ce la bonne forme ?

Je suis nouveau dans les projets C# de base de données SQL et j'ai un problème de connexion à ma base de données dans une application Windows form qui est une application à utilisateur unique et je veux l'utiliser juste pour moi. J'utilise Visual Studio 2012 sur Windows 7 64 bits et j'ai installé SQL Server 2008 et 2012 sur mon ordinateur portable DELL Inspiron15 3521 (trop d'informations ? Désolé, je suis terriblement désespéré). Tout d'abord je ne sais pas si ma chaîne de connexion est correcte ou sous une forme correcte. voici ma chaîne de connexion :

con.ConnectionString = "Data Source=(local); Initial Catalog=Library;Integrated Security=True";

Alors s'il vous plaît aidez-moi à le corriger, et un autre problème est lorsque ce code est exécuté dans Visual Studio 2012, il me dit que "Impossible d'ouvrir la base de données "Library" demandée par le login. The login failed". Ceci se produit alors que mon authentification dans le serveur SQL est Windows Authentication et que je n'ai pas d'informations de connexion ajoutées à la base de données. Y a-t-il une configuration pour cela ou est-ce simplement mon code qui est mauvais ?

Merci d'avance

3voto

Dhananjay Singh Points 91

Votre chaîne de connexion devrait ressembler à ceci :

<connectionStrings>    
    <add name="ConnStringDb1" 
         connectionString="Data Source=localhost\SQLSERVER;Initial Catalog=Library;Integrated Security=True;" 
         providerName="System.Data.SqlClient" /> 
</connectionStrings>

0voto

caesay Points 4760

Si vous souhaitez utiliser la base de données de test/locale qui est installée avec VS, vous devez rechercher les éléments suivants (localdb)\\mssqllocaldb

Donc la chaîne de connexion serait alors :

Data Source=(localdb)\\mssqllocaldb; Initial Catalog=Library;Integrated Security=True

Vous pouvez le stocker dans le app.config comme l'autre réponse, sinon cela peut dépendre de ce que vous utilisez.

Initial Catalog parle du nom de la base de données qui sera créée/utilisée
Integrated Security signifie qu'il s'authentifiera auprès de la base de données avec l'utilisateur Windows actuel.

Vous avez besoin de ces deux éléments pour vous connecter à la base de données locale intégrée.

0voto

Nemi Points 9

Merci à tous pour toutes les réponses mais j'ai trouvé ma réponse dans la réponse de @Corak, le site web qui est dans le commentaire. cependant c'est la bonne forme du code que je devrais utiliser pour ma connexion string :

@"Data Source=(LocalDB)\v11.0; AttachDbFileName=|DataDirectory|\Library.mdf; Integrated Security=True";

Dans mon cas, le |DataDirectory| est le chemin de la base de données (Library.mdf) sur mon ordinateur. Si quelqu'un a utilisé ce code au lieu de |DataDirectory| écrire le chemin Comme l'exemple parce que si vous utilisez |DataDirectory| Le code sera exécuté mais rien ne se passera dans la base de données (ou du moins pour moi, cela n'a pas fonctionné). Voici l'exemple :

@"Data Source=(LocalDB)\v11.0;AttachDbFileName=AttachDbFileName=C:\Users\John\Documents\Visual Studio 2012\Projects\MyDatabasProject\MyDatabasProject\Library.mdf; Integrated Security=True";

Mon sqlserver est VS2012 local database server v11.0 et c'est la chose que j'ai dû écrire dans mon code spécifiquement.

J'espère que c'est utile

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X