2017-10-01 1 views
0

Je suis en train de connecter mon projet en studio visuel à ma base de données en utilisant SQL Server 2012. C'est mon code:Connexion base de données SQL Server 2012 à Visual Studio 2012

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Data; 
using System.Text; 
using System.Windows.Forms; 
using System.Data.SqlClient; 

namespace CollegeManagementSystem.lib 
{ 
public class DatabaseConnection 
{ 
    public static SqlConnection Con; 

    public static SqlConnection GlobalConnection() 
    { 
     string ConString = @"Data Source=DESKTOP-JTVC4I1\\SQLEXPRESS;" + Global.ServerName + ";Initial Catalog=College" + Global.Database + ";Integrated Security=True;User Id=sa" + Global.SUserId + ";Password=123" + Global.SPassword + ";Connection Timeout=1000"; 
     Con = new SqlConnection(); 
     Con.ConnectionString = ConString; 
     if (Con.State == ConnectionState.Open) 
     { 
      Con.Close(); 
     } 
     Con.Open(); 
     return Con; 
    } 

le nom de ma base de données est un collège. DB, je suis aussi confus j'ai une base de données dans le serveur appelé master.db qui a la même table que j'ai créé dans ma base de données college.db mais je ne l'ai pas créé.

et je reçois l'erreur:

un réseau lié ou une erreur spécifique à l'instance survenue lors de établir une connexion à SQL Server. Le serveur n'a pas été trouvé ou n'était pas accessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes.

Je cours mon SQL Server localement. Comment puis-je réparer cela?

+0

Quelle est la valeur de 'Global.ServerName'? – Mostafiz

+0

chaîne statique publique ServerName = "DESKTOP-JTVC4I1 \\ SQLEXPRESS"; –

+1

Définissez un point d'arrêt et déterminez la valeur de ConnString. Je suppose que vous verrez quel est le problème. –

Répondre

1

Votre chaîne de connexion est Integrated Security=True. Cela signifie que les attributs User Id et Password que vous avez spécifiés seront ignorés et que l'identité Windows enregistrée courante sera utilisée.

Essayez de changer la chaîne de connexion à Integrated Security=False

Plus de détails peuvent être trouvés à MSDN SqlConnection.ConnectionString Property

Si false, ID utilisateur et mot de passe sont spécifiés dans la connexion. Si la valeur est true, les informations d'identification du compte Windows actuel sont utilisées pour l'authentification. Les valeurs reconnues sont true, false, yes, no et sspi (fortement recommandé), ce qui équivaut à true. Si l'ID utilisateur et le mot de passe sont spécifiés et que la sécurité intégrée est définie sur Vrai, l'ID utilisateur et le mot de passe seront ignorés et la sécurité intégrée sera utilisée.

0

Changez votre chaîne de connexion comme ci-dessous. Parce que Global.ServerName ont déjà le nom du serveur, mais dans votre code, cela est dupliqué. Aussi je pense que Global.Database, Global.SUserId, Global.SPassword sont dupliqués.

string ConString = @"Data Source=" + Global.ServerName + 
     ";Initial Catalog=" + Global.Database + 
     ";Integrated Security=False;User Id=" + Global.SUserId + 
     ";Password=" + Global.SPassword + ";Connection Timeout=1000"; 
+0

la base de données a fonctionné. mais quand j'essaye de m'identifier invite que le nom d'utilisateur et le mot de passe est incorrect, le nom d'utilisateur et le mot de passe s'appellent admin. –

+0

Avez-vous essayé ma réponse mise à jour? Quel est le mot de passe de l'utilisateur? et quelle est la valeur de 'Global.SUserId' et' Global.SPassword'. A fait les deux la même chose? – Mostafiz

+0

oui j'ai essayé votre solution, la valeur de Global.SUserId et Global.SPassword est également administrateur –

0

Vous pouvez essayer ceci:

string ConString = "Server=DESKTOP-JTVC4I1\\SQLEXPRESS;Database=College;User Id=sa;Password=123;" 

Assurez-vous également que votre nom de base de données est correcte. Dans la description, vous avez dit que votre nom de base de données est "collège" mais dans la chaîne de connexion, vous avez utilisé "Collège".