可以在网络上运行的.net嵌入式数据库

Michael Stum 33 .net database embedded-database

我(现在仍在)寻找在.net(c#)应用程序中使用的嵌入式数据库.警告:应用程序(或至少数据库)存储在网络驱动器上,但一次仅由1个用户使用.

现在,我的第一个想法是SQL Server Compact版.这真的很好地融合了,但它无法在网络上运行.

Firebird似乎有同样的问题,但.net集成似乎并不是真正的一流,而且很大程度上没有文档记录.

Blackfish SQL看起来很有趣,但没有.net版本的试用版.定价也行.

对.net 运行良好并且无需实际安装服务器软件即可在网络上运行的任何其他建议?

sven.. 24

在阅读你的问题时我想到了SQLite,而且我很确定如果你一次让自己受到1个用户的限制,就可以从网络驱动器访问它.

SQLite on .NET - 在3分钟内启动并运行


用户甲.. 10

我推荐Advantage Database Server(www.advantagedatabase.com).它是一个成熟的嵌入式数据库,具有很强的支持,除了.NET之外还可以从许多开发语言中访问."本地"版本是免费的,在您的应用程序中以DLL的形式运行,无需在服务器/网络共享上安装,并支持所有主要数据库功能.您可以将所有数据库和/或应用程序文件存储在网络上; 它并不关心数据的位置.

免责声明:我是ADS研发团队的工程师.我保证,它摇滚:)


Justin Walgr.. 9

听起来ADO/Access非常适合您的需求.它融入了MS堆栈,经验丰富,多用户.

您可以以编程方式创建一个DB,如下所示:

Dim catalog as New ADOX.Catalog
Catalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\server\path\to\db.mdb")

然后,您可以使用标准ADO.NET方法与数据库进行交互.


Fabio Gomes.. 9

您可以使用firebird embeded,它只是您需要随应用程序一起提供的dll.

关于未记录的事情,这不是真的,firebird .NET驱动程序实现了ADO接口,所以如果你知道ADO你可以使用Firebird,基本上代替SQLConnection你会使用FBConnection等等,但我的建议是写一个数据访问层并使用代码上的接口,如下所示:

using FirebirdSql.Data.FirebirdClient;

public static IDbConnection MyConnection()
{
    FbConnection cn = new FbConnection("...");
    return cn;
}

这个例子很简单,但你不需要更多.

我们使用firebird为我们的所有应用程序没有任何问题,你应该至少尝试一下.


Yaakov Ellis.. 7

查看VistaDB.他们有一个非常好的产品,服务器版本(3.4)是测试版,非常接近发布.


Jason Short.. 7

这里的帖子有点晚了..而且已经提到过VistaDB,但我想指出VistaDB是100%管理的(因为你的帖子被标记为.net).它可以从共享网络驱动器运行,并部署1MB xcopy.

由于您提到了SQL CE,我们还支持T-SQL语法和数据类型(实际上不仅仅是SQL CE),并且具有可更新的视图,TSQL Procs以及SQL CE中缺少的其他内容.


用户甲.. 5

为什么不使用SQL Server 2005 Express版

它实际上取决于"嵌入式"的含义 - 但您可以使用您的应用程序重新分发SQLServer2005E,用户永远不必知道它在那里.

在应用程序中嵌入SQL Server Express

将SQL Server Express嵌入自定义应用程序