2012-02-03 50 views
10

Tengo un error a continuación añadir un archivo .mdf (base de datos de SQL Server) en un proyecto de Visual Studio 2010Cómo agregar el archivo de base de datos de SQL Server (.mdf) en Visual Studio sin instalar SQL Server Express Edition?

Las conexiones a los archivos de base de datos SQL Server (.mdf) requieren SQL Server 2005 Express o SQL Server 2008 Express a se instala y se ejecuta en el equipo local

no quiero instalar SQL Server Express (2005/2008) porque ya he instalado SQL Server 2005 Enterprise Edition

Estoy usando Visual Studio 2010 Ultimate

+0

Esta pregunta se ha hecho antes, ver http://stackoverflow.com/questions/4650183/problem-with-creating-mdf-file- from-visual-studio-2010 – rfcdejong

+1

La opción * adjuntar un archivo '.mdf' * solo está disponible en las ediciones ** EXPRESS ** de SQL Server; todas las demás (web, estándar, empresarial) ** NO ** apoyar esta opción. Si tiene una versión completa de SQL Server, debe crear la base de datos en el servidor y luego conectarse a ella mediante una cadena de conexión de servidor –

+0

@marc_s ¡¡¡Esta es la respuesta !!! He estado tratando de ver por qué mi versión con licencia de SQL Server está * surprssed * por Visual Studio y exige SQL Express ... así que para mí la solución es conectarme a través de 'conn String' ... Gracias pro. – bonCodigo

Respuesta

10

Esto es realmente molesto. Básicamente, en Machine.config para la versión del framework que está desarrollando en contra, hay una entrada para LocalSqlServer.

En mi máquina, para la versión 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" /> 

He descubierto que si he cambiado el fuente de datos parte de la cadena de conexión para apuntar a mi instancia de servidor completo Sql 2005, luego el error que mencionaste desapareció.

(similares para otras versiones del marco, que también he cambiado)

No puedo recordar si necesitaba para reiniciar acaba de Visual Studio o toda la máquina antes de ver los cambios funcionan.

¡Recuerde hacer una copia de seguridad de sus archivos machine.config antes de editarlos!

Dicho esto, tampoco hay ninguna razón por la que no pueda agregar la base de datos en el servidor Sql mismo (si tiene el mdf) y luego conectarse desde Visual Studio a través de la vista -> Server Explorer -> Conexiones de datos (Click derecho -> Agregar conexión) - ¿Has probado eso?

+0

Antes que nada, agradezco su respuesta. No deseo restaurar o adjuntar un archivo mdf si ejecuto mi aplicación desarrollada en otra PC desarrollada en mi PC. Si descarga código de muestra desde el sitio web, para algunas personas es molesto configurarlo. aplicaciones (significa restaurar db o adjuntar archivo mdf y configurar cadena de conexión, etc.) – Ali

+0

Todo depende: podría argumentar que esos archivos MDF son una dependencia de su proyecto y, como cualquier dependencia, debe incluirlos de alguna manera. ¡Buena suerte! – dash

1

Sé que esta publicación es un poco antigua, pero me encontré con el mismo problema y en realidad encontré una solución, por lo que me gustaría compartirla.

  1. instalar SQL Express 2008 R2
  2. En Visual Studio 2010 ir a Tools -> Options
  3. Seleccionar Database Tools -> Data Connections y actualizar el Sql Server Instance Name (blank for default) con el nombre de la instancia de la base de datos.
  4. luego ir a los servicios pulsando ⊞Win + R y services.msc
  5. Seleccione la SQL Server (<instance name of express edition>), clic derecho y seleccionar Properties
  6. Luego, en la ventana de propiedades del servicio van a Log On pestaña y seleccione Local System account

Después de estos pasos, pude agregar un archivo .mdf en visual studio 2010.

También es posible poder hacerlo sin instalar Sql server express, comenzando desde el segundo paso, pero no lo intenté.

0

puede utilizar código para añadir que si no existe

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(); 
      } 
     } 
Cuestiones relacionadas