尝试连接到.sdf数据库时出现异常

时间:2011-05-10 18:00:09

标签: c# sql-server web-services visual-studio-2010

我在文件C:\Users\Pawel\Documents\DB.sdf中有数据库。我该如何连接它?

下面的简单代码不起作用并产生异常。

代码:

[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;
}

结果:
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)

我错过了什么?我该怎么做才能正确打开连接?

编辑:
System.NotSupportedException: SQL Server Compact is not intended for ASP.NET development.
 太棒了:P

2 个答案:

答案 0 :(得分:8)

考虑使用System.Data.SqlServerCe.SqlCeConnection

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

(如有必要,添加对System.Data.SqlServerCe的引用)

此外,要在ASP.NET中使用它,请添加:

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

答案 1 :(得分:1)

显然,您使用的是SQL Compact Edition(sdf文件)。您是否尝试过使用SqlCeConnection代替SqlConnection

作为奖励:如果您不想再乱用连接线,请尝试this

这样做,您必须添加对System.Data.SqlServerCe程序集的引用。

相关问题