2011-05-10 16 views
5

Tengo una base de datos en el archivo C:\Users\Pawel\Documents\DB.sdf. ¿Cómo me puedo conectar?Excepción al intentar conectar con la base de datos .sdf

El código simple a continuación no funciona y genera excepciones.

Código:

[WebMethod] 
public String TestCon() 
{ 
    SqlConnection sql = new System.Data.SqlClient.SqlConnection(
     @"Data Source=C:\Users\Pawel\Documents\DB.sdf"); 

    string str = "OK"; 

    try 
    { 
     sql.Open(); 
     sql.Close(); 
    } 
    catch (Exception ex) 
    { 
     str = ex.Message; 
    } 

    return str; 
} 

Resultado:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

¿Qué me falta? ¿Qué debo hacer para abrir la conexión correctamente?

EDIT:
System.NotSupportedException: SQL Server Compact is not intended for ASP.NET development.
Gran: P

+0

¿Está utilizando SqlCompact? Me parece que está usando el SQL Client normal –

Respuesta

8

considerar el uso de System.Data.SqlServerCe.SqlCeConnection:

System.Data.SqlServerCe.SqlCeConnection con = 
    new System.Data.SqlServerCe.SqlCeConnection(@"Data Source=C:\Users\Pawel\Documents\DB.sdf"); 

(Agregar una referencia a System.Data.SqlServerCe, si es necesario)

Además, para úselo con ASP.NET, agregue:

AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true); 
+0

El tipo o el nombre del espacio de nombres 'SqlServerCe' no existe en el espacio de nombres 'System.Data' (¿falta una referencia de ensamblado?) – Ichibann

+1

Sí, debe agregar una referencia al Sistema .Data.SqlServerCe assembly. – Larry

+0

Debe agregar una referencia a System.Data.SqlServerCe a su proyecto. (Haga clic derecho en 'Referencias' en el explorador de soluciones, 'Agregar referencia', el resto es fácil) – Dmitry

1

Aparentemente, está utilizando una edición compacta de SQL (archivo sdf). ¿Has probado usando SqlCeConnection en lugar de SqlConnection?

Como beneficio adicional: si ya no quiere meterse con conexiones, intente this.

Hazlo, tienes que agregar una referencia al ensamblaje System.Data.SqlServerCe.

Cuestiones relacionadas