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

Hoq*_*que 2 c# sql-server-ce

请参阅如何检查数据库是否存在的问题我试图在web.config连接字符串中检测到DB的存在,但运气不好.

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

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

    <add name="sqlCEConnString" connectionString="Data Source=|DataDirectory|db.sdf;Initial Catalog=master" providerName="System.Data.SqlServerCE.4.0"/>
Run Code Online (Sandbox Code Playgroud)

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

试用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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

我做错了什么?

Hoq*_*que 5

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

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