在 ASP.NET 中针对 SQL Compact 4.0 执行/查询

Posted

技术标签:

【中文标题】在 ASP.NET 中针对 SQL Compact 4.0 执行/查询【英文标题】:Execute/Query against SQL Compact 4.0 in ASP.NET 【发布时间】:2010-09-30 16:46:26 【问题描述】:

我正在编写一个小型实用 MVC 应用程序,我需要能够针对我的单表 SQL Compact 4.0 .sdf 文件执行临时查询以进行管理(Web Matrix 不适用于开发,并且它不会在最终运行的 PC 上可用)。使用实体框架代码优先,一切正常,但要进行临时查询,我想我需要像在 EF 之前那样连接到它(见下文)

            cn = new SqlConnection("Data Source=|DataDirectory|LocalScanData.sdf");
            SqlCommand cmd = new SqlCommand(query, cn);

            if (cn.State != ConnectionState.Open) cn.Open();

            if (query.ToUpper().StartsWith("INSERT") || query.ToUpper().StartsWith("UPDATE") || query.ToUpper().StartsWith("DELETE"))
            
                TempData["RowsAffected"] = cmd.ExecuteNonQuery();
                return RedirectToAction("SQL");
            
            else
            
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();

                da.Fill(dt);

                return RedirectToAction("SQL", dt);
            

但是当我尝试这样做时,我得到了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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)。那么,问题是如何以老式方式连接到 SQL CE 4.0 数据库?我也尝试过使用System.Data.SqlServerCe,但后来出现错误,让我相信它只适用于 CE 3.5 数据库。

有什么帮助吗?

【问题讨论】:

【参考方案1】:

这也发生在我身上。这是 sdf ddbb 的工作方式,您不能对此执行查询。您必须创建数据集、数据适配器等。

【讨论】:

以上是关于在 ASP.NET 中针对 SQL Compact 4.0 执行/查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET Web 应用程序中为 Windows Mobile 创建 SQL Compact 3.5 数据库?

哪个数据库用于 ASP.NET 中的 CMS 项目 - SQLite 或 SQL server compact?

无法让 sql server compact 3.5 / 4 与 ASP .NET MVC 2 一起使用

ASP.NET MVC 4 + Entity Framework 6 + SQL Compact Edition 4.0 部署无需安装

asp.net mvc用sql server数据库和用sql server compact数据库有啥区别

从哪里获得 SQL Server Compact Edition 4? [关闭]