我正在开发一个碰巧有一些需要经常更新的记录的应用程序。我想避免在客户端PC上部署SQL Server,所以我读了很多,并认为本地.mdf
文件可能是一个解决方案(现在不太确定,如果可以避免部署SQL Server,几天之后我会'我只是意识到我距离右LOL几英里远。)
另外,阅读,我发现有一种方法可以通过直观地从Data Sources窗口移动对象来将控件绑定到数据,所以我想我会节省很多时间,但最后我真的很困惑因为我无法实际写入数据库文件并且当前可用的信息似乎非常不明确,并且对于VS的许多版本和风格(即WPF,Windows Forms,vs 2008,vs 2010,甚至更旧的.NET框架版本),所以我认为stackoverflow论坛中有人可能会非常清楚这些事情。
所以,我有一些问题,我相信会清除我的困惑(以及任何遇到这个问题的人):
在没有安装SQL Server的情况下,是否可以实际使用.mdf
文件?
VS有时令人困惑,它提供了创建本地数据库文件而无需安装SQL Server的功能,我想我认为很多事情都是理所当然的,因为我不是一位经验丰富的.NET程序员。
如果不可能的话。有没有其他方法可以避免在客户端上部署SQL Server,这是否是一个有效的问题?
也许我不担心不在客户端计算机上部署SQL Server安装?
我是否可以使用花哨的数据绑定控件来处理将更改直接写入数据库的类似“自动”更新调用?
使用应用程序似乎有两种管理数据库的方法,当然,我想这样做,只是让这些数据绑定控件工作,因为数据库很大而且没有多少处理方式,只需存储。
DataSet是否包含数据库的临时副本?
我有一个Database.mdf
和一个DataSet.xsd
,在搜索参考资料后,我仍然不知道这两个家伙到底发生了什么。
答案 0 :(得分:9)
没有。在项目中创建新项目时,基于服务器的数据库模板会创建MDF文件,并要求在所有客户端上安装SQL Server Express实例。
本地数据库模板创建一个SDF文件,它是一个SQL Server CE数据库。尽管有这个名字,但SQL Server CE与SQL Server(Express)完全不同。 SQL Server CE不使用服务器,因此您可以在客户端上安装它,也可以只在您的应用程序中部署所需的DLL。
运行“数据源”向导并选择数据源。只要您选择支持的数据源,剩下的工作就完成了。您可以使用SQL Server实例,SQL Server Express文件,SQL Server CE或Access开箱即用。您还可以通过第三方提供商的下载来支持Oracle,MySQL和其他人。
MDF是实际的数据文件,与大型SQL Server用于存储数据的文件相同。 XSD是DataSet的XML模式定义,它是一个类似于任何其他类的类。从数据库检索数据时,使用表适配器,该表适配器是数据源向导生成的自定义类的实例。如果您没有使用向导,那个表适配器将包装您自己使用的标准ADO.NET连接和数据适配器对象。表适配器的Fill方法填充DataSet中的DataTable,DataSet也是由继承标准DataTable和DataSet类的向导生成的自定义类。对数据进行所需的修改后,可以在表适配器上调用Update以将更改保存回数据库。如果您的控件被绑定,那么填充DataTable将自动填充您的控件,并在控件中进行修改将自动修改DataTable中的数据。