web-dev-qa-db-fra.com

Comment ajouter un fichier de base de données SQL Server (.mdf) dans Visual Studio sans installer SQL Server Express Edition?

J'ai une erreur ci-dessous lors de l'ajout d'un fichier .mdf (base de données SQL Server) dans un projet Visual Studio 2010

Les connexions aux fichiers de base de données SQL Server (.mdf) nécessitent l'installation et l'exécution de SQL Server 2005 Express ou SQL Server 2008 Express sur l'ordinateur local.

Je ne souhaite pas installer SQL Server Express (2005/2008) car j'ai déjà installé SQL Server 2005 Enterprise Edition.

J'utilise Visual Studio 2010 Ultimate

10
Ali

C'est vraiment un ennuyeux. Fondamentalement, dans Machine.config pour la version du framework que vous développez, il existe une entrée pour LocalSqlServer.

Sur ma machine, pour la version 4:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Machine.config

<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />

J'ai constaté que si je modifiais la partie source de données de la chaîne de connexion pour qu'elle pointe vers mon instance de serveur complet SQL 2005, l'erreur que vous avez mentionnée avait disparu.

(Similaire pour d'autres versions du framework, que j'ai également changé)

Je ne me souviens plus si j’avais besoin de redémarrer Visual Studio ou l’ensemble de la machine avant de voir les modifications fonctionner.

N'oubliez pas de sauvegarder vos fichiers machine.config avant de les éditer!

Cela dit, il n’ya aucune raison pour que vous ne puissiez pas ajouter la base de données à Sql Server lui-même (si vous avez le MDF), mais vous y connecter à partir de Visual Studio via la vue -> Explorateur de serveurs -> Connexions de données (clic droit - > Ajouter une connexion) - l’avez-vous essayé?

10
dash

Je sais que cet article est un peu vieux, mais j'ai rencontré le même problème et j'ai en fait trouvé une solution. J'aimerais donc le partager.

  1. Installer SQL Express 2008 R2
  2. Dans Visual Studio 2010, accédez à Tools -> Options
  3. Sélectionnez Database Tools -> Data Connections et mettez à jour la Sql Server Instance Name (blank for default) avec le nom d'instance de votre base de données.
  4. Ensuite, allez aux services en appuyant sur ⊞Win + R et services.msc
  5. Sélectionnez la SQL Server (<instance name of express edition>), cliquez avec le bouton droit de la souris et sélectionnez Properties
  6. Ensuite, dans la fenêtre des propriétés du service, allez à l’onglet Log On et sélectionnez Local System account.

Après ces étapes, j’ai pu ajouter un fichier .mdf dans visual studio 2010.

Il est peut-être également possible de le faire sans installer Sql server express, à partir de la deuxième étape, mais je ne l’ai pas essayé.

1
CodeArtist

vous pouvez utiliser du code pour ajouter que s'il n'existe pas

string curFile = @"C:\Dev\Test_data.mdf";
        if (!File.Exists(curFile))
        {
            SqlConnection connection = new SqlConnection(@"server=(localdb)\v11.0");
            using (connection)
            {
                connection.Open();

                string sql = string.Format(@"
                                    CREATE DATABASE
                                        [Test]
                                    ON PRIMARY (
                                       NAME=Test_data,
                                       FILENAME = '{0}\Test_data.mdf'
                                    )
                                    LOG ON (
                                        NAME=Test_log,
                                        FILENAME = '{0}\Test_log.ldf'
                                    )",
                    @"C:\Dev"
                );

                SqlCommand command = new SqlCommand(sql, connection);
                command.ExecuteNonQuery();
            } 
        }
0
David Fawzy