C#中的本地数据库和SQL Server Management Studio创建的数据库之间有什么区别?

ade*_*ena 13 database sql-server local-database visual-c#-express-2010

我正在使用MS Visual C#2010 Express创建一个需要数据库的应用程序.

我了解到,使用此应用程序创建/使用SQL数据库似乎有两种方法.

第一个似乎是在C#中,我可以通过在解决方案资源管理器中右键单击我的应用程序并单击"添加" - >"新项" - >"本地数据库"来创建"本地数据库".然后它显示在数据库资源管理器中,我可以使用它.

另一种方法是我使用SQL Server Management Studio创建数据库,然后在C#代码中,我打开它的连接(SQLConnection ... yada yada yada)并使用它.

我很难理解选择一种方式或另一种方式之间的技术原因......

有人可以描述差异以及选择一种方式与另一种方式的标准吗?(或指向网站参考......)

谢谢!

-Adeena

附加信息......现在,这是一个业余爱好项目,因为我得到了一些成果.

  1. 我是唯一的开发人员并且在一台机器上工作
  2. 该应用程序旨在独立运行 - 不以浏览器或以任何方式通过Web运行.我知道这不是宇宙的方向,但如上所述,这是一个我需要完成的业余爱好项目,以解决其他一些问题.
  3. 我不相信我有任何需要或意图让多个应用程序在这个数据库上工作.

Pet*_*one 12

实际上你有三个选择.您未描述的选项是使用SSMS创建数据库然后设置与文件的连接并选择由SSMS创建的MDB文件的选项(您可能需要首先使用SSMS卸载数据库以获取SQL Express发布其文件锁).创建与文件的此连接时,系统将提示您是否要将其连接到文件,或者将其添加到项目中.

本地数据库可以采用两种形式,具体取决于您创建它的方式.有关详细信息,请参阅如何:管理项目中的本地数据文件.

客户端 - 服务器,SQL Express

如果您使用SSMS设置数据库并通过SQL Express连接到该数据库,那么您没有本地数据库是项目的一部分,您有一个数据库,服务器恰好是您工作站的本地数据库.

本地数据库,SQL Express

如果使用SSMS设置数据库,请卸载数据库并将该文件添加到项目中,然后您将拥有一个使用SQL Express私有实例的本地数据库.

本地数据库,精简版

如果使用Visual Studio菜单创建新数据库,则可以使用本地Compact Edition数据库.

SQL Express

当Visual Studio启动调试时,将启动SQL Server Express的私有命名实例,并且应用程序使用共享内存而不是网络协议与此进行通信.

但是,绝对没有什么能阻止您安装作为服务运行的SQL Express实例.您可以安装相同的数据库文件(或其副本)并使其可供网络使用.您甚至可以将它安装在SQL Standard实例上,甚至SQL Enterprise上.

那你为什么要用本地实例搞砸呢?它对多开发人员团队有利,因为开发人员可以在不中断其他人的情况下改变他们的架构.它允许开发桌面(而不是网络)软件,尽管在这个时代,对该功能的需求正在减少.

根据您在开发环境中的硬件数量,我个人不会使用本地数据库.SQL Server是一个内存猪,我更倾向于在一个完全独立的盒子上运行.

有些事情需要注意

  • 除了Compact和Micro版本之外,所有版本的MSSQL都完全相同.
  • 在环境方面,SQL Express将数据库大小限制为4G,尽管我认为R2的最高可达8G.这不太可能对开发有重大影响,但可能会影响测试人员.
  • 某些SQL Server Reporting Services功能在较便宜的版本中不可用.

SQL Server精简版

有关这方面的信息非常薄.Microsoft的版本比较不考虑Compact或Micro版本.Compact版网页上的一些简介声称完全兼容TSQL.SDF是一体化文件; 没有单独的日志文件.从SDF到客户端 - 服务器的路径肯定不如SQL Express直接,但它似乎是一个受支持的选项,因为在这个主题的msdn中有文章.

复制工具可用于Compact版本,因此可以在偶尔连接的系统(也称为公文包模型)中用作本地数据库缓存.公文包模型需要更仔细的整体系统设计,但它有很多功能:单个用户独立系统的所有性能和简单性,以及客户端 - 服务器系统的大部分优势.

结论

为了您的目的,我将使用Compact Edition选项.其他解决方案的开销和复杂性都倾向于解决您没有和不会遇到的问题.它们旨在通过正式的发布周期解决网络化,大规模环境中的团队开发问题.

你处于幸运的位置,你可以保持简单.无论如何,Visual Studio中的工具更好.


Yuc*_*uck 0

本地数据库使用 SQL Server 的缩减版本 - Express紧凑版 (CE)。存在许多技术限制,但最重要的一个是本地数据库仅适用于应用程序运行的实例。另一方面,数据库服务器可以由其他应用程序或同一应用程序的其他实例访问。实际上,由所有看到相同数据的多个用户共享。