根据web.config检查sqlce数据库是否存在

时间:2011-02-13 20:30:03

标签: c# sql-server-ce

请参阅问题How to check for the existence of a DB?我试图在web.config连接字符串中检测到DB的存在,但运气不佳。

我正在使用上述的最后一个答案作为我的审判。

试用1: web.config中的连接字符串

    <add name="sqlCEConnString" connectionString="Data Source=|DataDirectory|db.sdf;Initial Catalog=master" providerName="System.Data.SqlServerCE.4.0"/>

我收到错误:不支持关键字:'初始目录'。

试用2:没有关键字

string conString = ConfigurationManager.ConnectionStrings [“sqlCEConnString”]。ConnectionString;

    using(SqlCeConnection cnn = new SqlCeConnection(conString))
    { 
        cnn.Open();
        using (SqlCeCommand com = new SqlCeCommand("select count(*) from sys.databases where name = 'db.sdf'" , cnn))
        {
            int j=com.ExecuteNonQuery();
            Response.Write("Result:" + j);
        }
    }

这次我收到以下错误: 指定的表不存在。 [@@ sys.databases]

我做错了什么?

3 个答案:

答案 0 :(得分:5)

最后,我找到了根据连接字符串检测数据库是否存在的方法。在“SqlCeEngine”类下,有一个名为“Verify”的方法,可以通过该方法进行检测。

        string conString = ConfigurationManager.ConnectionStrings["sqlCEConnectionString"].ConnectionString;
    using (SqlCeEngine objCeEngine = new SqlCeEngine(conString))
    {
        if (!objCeEngine.Verify())
        {
            objCeEngine.CreateDatabase();
        }
    }

答案 1 :(得分:0)

我认为您需要指定sqlce数据库所在的连接。

试试此链接。

Connectionstring.com / Sql Compact

问候!

答案 2 :(得分:0)

在这里查看源代码,它会检测ASP.NET应用程序中是否存在SQL CE数据库文件,并在需要时使用表创建它:http://sqlcemembership.codeplex.com