2011-12-08 6 views
1

Je suis en train de me connecter à un serveur hôte local sql server 2008 express. J'utilise aussi mon code C# asp.net localement (test avant de me connecter aux serveurs de développement). Je ne peux pas obtenir le code pour me connecter à la base de données. J'ai copié la chaîne de connexion à partir des propriétés de la base de données créée dans Visual Studio 2010, et essayé d'utiliser cela, mais cela n'a pas fonctionné. Puis j'ai utilisé:Impossible de se connecter au serveur SQL Server 2008 localement

//Build the connection 
    SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder(); 

    //Put your server or server\instance name here. Likely YourComputerName\SQLExpress 
    bldr.DataSource = "(localhost)/SQLEXPRESS;"; 

    //Attach DB Filename 
    bldr.AttachDBFilename = "C:/Documents and Settings/1091912/My Documents/Visual Studio 2010/WebSites/BrokerBuy/App_Data/BrokerBuy.mdf"; 

    //User Instance 
    bldr.UserInstance = true; 

    //Whether or not a password is required. 
    bldr.IntegratedSecurity = true; 

    SqlConnection connectionString = new SqlConnection(bldr.ConnectionString); 
    connectionString.Open(); 

Mais cela ne fonctionne pas non plus. J'ai également essayé ./SQLEXPRESS pour mon nom de source de données, mais cela n'a pas fonctionné non plus. L'erreur qui se produit est la suivante:

Une erreur liée au réseau ou à une instance s'est produite lors de l'établissement d'une connexion à SQL Server Le serveur n'a pas été trouvé ou n'était pas accessible Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes (fournisseur: fournisseur de tuyaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server) "

J'ai également vérifié que sql server express est en cours d'exécution (il est) et que toutes les connexions mais via sont activées. Je ne peux pas obtenir la connexion au travail. Des idées?

+0

'bldr.DataSource = "(local)/SQLExpress;";' peut-être? – Joe

+0

Non, malheureusement, j'ai le même problème ... – shawleigh17

+0

Vous pouvez essayer '. \\ SQLEXPRESS' trop –

Répondre

1

Il y a quelques problèmes avec votre code. Le premier (localhost) n'est pas un jeton valide. Vous pouvez utiliser (local) ou mieux encore juste .. La deuxième est que votre chemin utilise des barres obliques à la place des barres obliques inverses. Bien que les nouvelles versions de Windows prennent en charge cette compatibilité * NIX, les pilotes de base de données peuvent ou non en fonction de la façon dont ils analysent le chemin en interne.

Voici quelques exemples de code qui devrait fonctionner:

//Build the connection 
SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder(); 

//Put your server or server\instance name here. Likely YourComputerName\SQLExpress 
bldr.DataSource = ".\\SQLEXPRESS"; 

//Attach DB Filename 
bldr.AttachDBFilename = bldr.AttachDBFilename = @"C:\Documents and Settings\1091912\My Documents\Visual Studio 2010\WebSites\BrokerBuy\App_Data\BrokerBuy.mdf"; 

//User Instance 
bldr.UserInstance = true; 

//Whether or not a password is required. 
bldr.IntegratedSecurity = true; 

SqlConnection connectionString = new SqlConnection(bldr.ConnectionString); 
connectionString.Open(); 
4

Votre DataSource est incorrect:

"(localhost)/SQLEXPRESS;";

Il devrait être soit (local)\SQLEXPRESS ou localhost\SQLEXPRESS. Vous pouvez vous référer à ce MSDN Blog Post pour plus d'informations. En outre, traditionnellement, il s'agit d'une barre oblique inverse, pas un slash (alors assurez-vous qu'il est échappé si vous avez besoin).

(local), y compris le parens est un indicateur spécial signifiant machine locale.

localhost est le nom réseau de la machine locale.

Vous pouvez utiliser l'un ou l'autre pour vous connecter à l'instance locale.

+0

Ok, j'ai utilisé '. \\ SQLEXPRESS' et il semble avoir été connecté, mais maintenant j'ai cette erreur: Une tentative de joindre une base de données nommée automatiquement pour le fichier C:/Documents and Settings/1091912/Mes documents/Visual Studio 2010/WebSites/BrokerBuy/App_Data/BrokerBuy.mdf a échoué. Une base de données portant le même nom existe ou le fichier spécifié ne peut pas être ouvert ou se trouve sur le partage UNC. – shawleigh17

+0

+1 il a résolu votre premier problème qui est assez je pense lui donner un +1. Votre deuxième commentaire devrait probablement être une autre question. – JonH

+0

Courtesy '+ 1' de moi aussi :) –

Questions connexes