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
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é?
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.
Tools -> Options
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.services.msc
SQL Server (<instance name of express edition>)
, cliquez avec le bouton droit de la souris et sélectionnez Properties
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é.
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();
}
}