Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何选择数据库系统的轻型版本_C#_Sql Server_Database - Fatal编程技术网

C# 如何选择数据库系统的轻型版本

C# 如何选择数据库系统的轻型版本,c#,sql-server,database,C#,Sql Server,Database,我正在启动一个POS(销售点)项目。目标系统将用C#NET 2 WinForms编写,作为主数据库服务器,我们将使用MS-SQL server。由于我们有很多POS设备在一个商店的连锁店中,我希望在每个POS设备上都有后端本地数据库系统 场景如下:当主服务器停机时!!POS应用程序应继续与本地数据库“脱机”工作,直到再次连接到主服务器 现在我左右为难,哪个本地数据库最适合我。以下是一些帮助我指出正确方向的注释: 轻装“我的POS设备通常都很旧,而且表演很痛苦” 免费“我有很多设备,除了主要的SQ

我正在启动一个POS(销售点)项目。目标系统将用C#NET 2 WinForms编写,作为主数据库服务器,我们将使用MS-SQL server。由于我们有很多POS设备在一个商店的连锁店中,我希望在每个POS设备上都有后端本地数据库系统

场景如下:当主服务器停机时!!POS应用程序应继续与本地数据库“脱机”工作,直到再次连接到主服务器

现在我左右为难,哪个本地数据库最适合我。以下是一些帮助我指出正确方向的注释:

  • 轻装“我的POS设备通常都很旧,而且表演很痛苦”
  • 免费“我有很多设备,除了主要的SQL服务器外,我不会增加额外的成本”
  • 总有一天我会喜欢尝试Mono和Linux操作系统上的所有端口
  • 以下是我到目前为止研究的内容:

  • Simple XML“很轻,但我担心性能,我的主要项目表平均有10K条记录”
  • SQL Express“我担心我的POS设备缺少用于SQLExpress的硬件,而且很难在每个设备上安装和配置”
  • 鲜为人知的是免费分发离线ADT系统
  • DBF和扩展库,“尊重好的旧DBF,但克利伯和DBF的时代已经过去了”
  • MS访问
  • Sqlite“目前主要与之相似,但我担心它将如何与MS SQL配对?它们是否具有相同的数据类型”
  • 我知道这里面有很多主观的数据,但至少有人能推荐一些其他的lite数据库系统,或者在我选择数据库之前我最应该注意的事情。

    它是为嵌入式设备(如Windows Mobile)设计的,但也可以在PC上运行。它是2MB,运行在进程中,单个数据库文件,可以有任何您喜欢的名称

    它的意思是作为一个本地高性能数据库。您无法远程连接到它,并且不支持存储过程或用户定义的函数


    但要回答你的实际问题:如何选择


    选择您拥有的管理工具,当您无法使用时,选择一个简单、兼容的升级路径。

    我建议使用Sql Compact Edition,因为它轻量级且免费,所以它解决了三个问题中的两个。我不知道它在Mono上是否有效


    我过去用过它,我对它的表现印象深刻。一大缺点是缺少存储过程…

    我也在做同样的事情:中央服务器可能运行MS SQL server和分布式系统,尽管它们运行的是Linux。我们选择用XML进行数据传输,并在分布式系统上使用sqlite

    虽然时间还早,但到目前为止似乎进展顺利

    sqlite有.net绑定

    我们选择sqlite的原因是:

  • 因为它不需要任何数据库管理,这在远程系统上是很棘手的
  • 它似乎被广泛使用:例如firefox使用sqlite进行本地存储
  • 我们可以在Windows和Linux上使用它
  • 如果发生意外断电,它应该能够很好地避免数据丢失
    我使用System.Data.Sqlite,这是一个围绕Sqlite的开源ADO.Net包装器。您可以在VisualStudio中使用它来构建数据库。它支持Sql Server字段类型的一个子集,在两个数据库之间编写接口类应该很简单。通过在项目中包含单个DLL和单个文件数据库,您可以获得简单部署的好处。它还包括加密