使用C#读取没有安装数据库程序的数据库文件?

时间:2013-12-09 12:33:29

标签: c# mysql database

我对数据库很陌生,虽然我一直在做教程等等,但我想知道:如果我有一个在MySQL或MSSQL中创建的数据库,我可以使用它来访问它吗? C#没有在机器上安装数据库服务器? 如果我编写一个使用小型数据库的程序,比如每个少于100个元素的4个表,我将如何在我发布的C#程序中部署它?请记住,这个问题不是关于在程序中使用数据库的优点,而是关于从已发布的C#程序访问数据库文件(.mdf)的机制,而不是在目标上安装数据库服务器机。我在MSDN上看过各种关于此问题的文章,但我没有找到一个回答这个问题的文章。

由于

3 个答案:

答案 0 :(得分:2)

基本上有3种类型的数据库实现:

  • 服务器安装 - 想想“SQL Server”,“Oracle” - 这里,数据库纯粹是在服务器上;调用者需要客户端库(即理解数据库协议的东西),但通常可以作为应用程序的一部分进行部署,或者是已经在机器上的标准框架的一部分;这里中央服务器通常会同时为多个客户端服务
  • 客户端安装 - 想想“SQL Server Express”等 - 这里有客户端机器上安装的专用数据库实用程序;同样,应用程序需要客户端库,但数据库引擎通常是需要为每个客户端发生的单独产品/安装
  • 嵌入式数据库 - 这个可能就是你的目标;在这种情况下,“客户端库”实际上包括整个数据库引擎,允许应用程序完全自包含;这往往提供三者中最少的功能,但通常足以满足大多数常见情况

所以:只要你把自己限制在第三类,你应该没事。

答案 1 :(得分:2)

我建议您使用SQLite,您不需要客户端安装任何DBMS。 它是performance is really good,你需要让nuget package开始使用。

答案 2 :(得分:1)

听起来您正在寻找嵌入式数据库。看看this question。该列表中的SQL Server Compact可能正是您所寻找的。