2010-09-13 1 views
8

J'utilise Visual Studio 2008 et ma base de données est SQL Server 2000.Erreur lors de l'ajout de la connexion dans l'Explorateur de serveurs: "Impossible d'ajouter une connexion de données ExecuteScalar requiert une connexion ouverte et disponible."

Je souhaite ajouter une connexion à l'Explorateur de serveur dans VS. La source de données est Microsoft SQL Server (SqlClient). Après avoir entré toutes mes informations et je clique sur Tester la connexion, cela fonctionne.

Mais quand je clique sur OK, je reçois l'erreur:

Impossible d'ajouter une connexion de données. ExecuteScalar nécessite une connexion ouverte et disponible. L'état actuel de la connexion est fermé.

+0

Redémarrez votre ordinateur. –

+0

Ça a marché ... quelle est l'histoire derrière tout ça? – Steven

+1

Je ne sais pas, juste une suggestion. –

Répondre

11

Redémarrez Visual Studio. Ensuite, redémarrez votre ordinateur.

+7

restt VS d'abord, cela devrait être suffisant –

+0

Pour moi redémarrer VS était suffisant – Regfor

+0

Même ici. Redémarré VS et tout s'est bien passé. Merci! –

0

Vous pouvez ouvrir l'Explorateur de serveurs (Affichage -> Explorateur de serveur) pour reconnecter la connexion.

Vous pouvez supprimer la connexion en cours pour l'ouvrir de nouveau.

0

Pour ceux qui utilisent une commande SQL et qui reçoivent l'erreur "Impossible d'ajouter une connexion de données ExecuteScalar nécessite une connexion ouverte et disponible L'état actuel de la connexion est fermé." essayez ceci:

 using (SqlConnection conn = new SqlConnection(connString)) 
     { 
      using (SqlCommand comm = new SqlCommand()) 
      { 
       // query to select all the rows whose column name is the same as id 
       comm.CommandText = "SELECT COUNT(*) from tableName where colName like @val1"; 
       comm.Connection = conn; 
       conn.Open(); // <---- adding this line fixed the error for me 
       comm.Parameters.AddWithValue("@val1", id); 
       // retrieve how many rows are returned after executing the query 
       count = (int)comm.ExecuteScalar(); // < --- where the error originally occurred 
      } 
     } 
Questions connexes