2

我已经安装了:

  • Visual C# 2008 速成版
  • 视觉 Web 开发者 2008 速成版
  • 视觉工作室 2008
  • SQL Server 2008 速成版
  • SQL Server 管理工作室

在 Visual C# 2008 Express 中,我可以“添加项目”并创建“本地数据库”(.sdf 文件)或“基于服务的数据库”(.mdf 文件)。

Visual Studio 2008 与用于应用程序的 Visual C# 2008 相同,但在网站中,我可以创建 .sdf 或 .mdf 文件的唯一方法是通过数据库资源管理器。

然而,在 Visual Web Developer 2008 Express 中,我可以“添加项目”并且只创建一个“SQL Server 数据库”(.mdf 文件)。甚至 Database Explorer 也不提供创建 SQL CE 数据库的功能。

问题:

  • 为什么应用程序之间存在差异,这是正常现象还是我的安装出了问题?
  • 我从来没有“安装过 SQL CE”,它是从哪里来的,我是如何创建 .sdf 文件的?
  • 您如何在日常项目中使用这些,您是使用 Visual Studio 编辑数据库还是使用 SQL Server Management Studio?
4

5 回答 5

3

我相信只有 Professional 和更高版本可以创建 MSSQL CE 数据库。

SQL CE 与 2008 studio 一起安装,我自己看到它很惊讶,并没有看到排除它的选项。

我个人使用 VS 2008 将项目添加到我的项目数据库中。因为它无论如何都是开放的,所以我只是使用它。它提供与 Management Studio 相同的大部分功能。如果我在做单独的数据库工作,我通常在 Management Studio 中做。

CE 数据库非常没用。它们具有有限的类型和功能子集。它们不支持视图或存储过程。基本上他们只存储表格;我没有尝试在其中创建外键。

无法重命名表或列。您必须创建一个新表。

创建数据库后,必须手动将其添加到项目中。

您不能直接在 CE 数据库上的 VS2008 中创建 LINQ to SQL 类。您需要使用命令行工具 sqlmetal(从 .NET 控制台调用)为您创建类。

我遇到了为 CE 数据库创建的类不像为常规 SQL 数据库构建的类那样工作的问题。因此,我放弃了一起使用 CE 数据库。

如果有一种可靠的方法可以在SQLite数据库上使用 Linq to SQL,那就太好了。SQLite 是一个很棒的独立数据库,不需要任何类型的外部引擎。

抱歉,我没有 SQL CE 数据库的任何性能统计信息。

我希望这有点帮助。

布雷特

于 2009-01-26T01:46:53.400 回答
1

好的,现在注册,不知道为什么对以前的答案投了-1票,但会扩大。

Web Developer Express 2008 不创建或使用 Sql Server CE 仅仅是因为 SQL Server CE 不是为在 Web 服务器上工作而设计的。

当你加载 c# express 或 vb express。提供安装sql server express 2008。未安装 SQL CE。如果你去添加一个我知道的两个数据源,Microsoft SQL Server Compact 3.5(Microsoft SQL Server Compact 3.5 的.NET Framework Data Provider)和Microsoft SQL Server Database File(SqlClient),访问客户端可能在那里还。

应该注意默认的 Express 设置,如果您选择使用 sql server compact 的数据提供程序,即使它是一个选项,它也会失败。您必须单独下载 sql server ce 才能创建 sdf 数据库。

此外,Express 版本针对不同的受众,并且没有与 main vs sku 相同的 ui 设置。例如,数据库设置中的 Web express 甚至不提供使用 sql server ce 的选择。而在 VS 中,它是从数据菜单中选择的,主要是因为 VS 支持的不仅仅是 Web 开发人员。

现在你说你加载了VS 2008(没有说什么版本但没关系,因为这会影响标准及更高版本)

vs 2008 的默认安装将安装 Sql server ce(并且如之前的回答所述,3.1 与 rtm 一起使用,3.5 与 sp1 一起使用)。你可以提前关闭它的选项。

我担心的一个问题是您提到您无法在 vs on web 项目中创建数据库。您使用的是哪个模板。您应该能够在添加项目中创建基于服务器的数据库项目,并在数据选项卡中创建本地和服务器数据库对象。

所以在夏天。

在基于客户端的快速 skus 和基于客户端的项目上,您应该能够从添加项目和数据选项卡创建本地或基于服务器的数据库。

由于 sql CE 在 Web 服务器上不受官方支持。在添加项目的网络 skus 上,您应该只能访问创建基于服务器的数据库。在快递上,因为它是专用的 sku CE 不是数据选项卡或添加项目中的选项。在 vs 上,您可以从“数据”选项卡创建 CE 数据库。并且您应该有权在添加项目中创建服务器数据库。

sql server management studio 不关心源在哪里。因此它将与所有人一起使用并创建数据库。

我使用列出的所有选项只是取决于我当时在哪里或在哪里。如前所述,桌面上的 CE 主要是一个缓存数据库,非常适合离线数据库支持。但确实有其局限性,此外确实需要更好的集成。一旦我创建或使用支持数据库,我主要使用管理工作室。

于 2009-02-02T22:27:14.947 回答
0

这很正常。Visual Studio 设计器支持的数据库类型因版本而异。请注意,任何版本的 Visual Studio 都可以编写和使用连接到任何这些数据库的代码。只是 IDE 中包含的可视化“向导”工具可以引导您完成每个版本的不同。

SQL CE 是 sql server 的精简版。它旨在用于智能手机等便携式设备或作为桌面应用程序中本地数据存储的 Access 替代品。它非常便携:只有 2 个 dll 的磁盘空间小于 1Mb,并且可能包含在至少一个 Visual Studio 包中,可能全部包含在其中。

我通常在 Management Studio 中完成所有数据库工作,但这是个人喜好。

于 2009-01-22T17:02:10.833 回答
0

无法从 Web express 访问 CE 的关键在于 Web 服务器不支持 CE。

道格拉斯

于 2009-01-22T18:01:42.430 回答
-1

这种差异很奇怪,但由于 SQL CE 是一个插件项目,很可能是团队没有测试所有可能的场景,并且一些应用程序根本没有获得他们需要知道它存在的信息。我并不是说出了什么问题——它可能只是 SQL CE 团队从未测试过的场景。

SQL CE 是随 Studio 一起安装的(暂时想不起来,但我认为 RTM 附带了 3.1,SP1 附带了 3.5)。

我总是使用 Management Studio 进行数据库修改(直接在代码中完成的除外)。

于 2009-01-22T17:00:51.460 回答