【问题标题】:Local database, I need some examples本地数据库,我需要一些例子
【发布时间】:2010-11-10 10:49:45
【问题描述】:

我正在制作一个将在多台计算机上安装和运行的应用程序,我的目标是制作一个与应用程序一起安装的空本地数据库文件,当用户使用该应用程序时,他的数据库将填充来自应用程序。 你能给我提供以下例子吗:

  1. 我需要做什么才能让我的应用连接到其本地数据库
  2. 如何使用应用程序中的变量执行查询,例如如何将以下内容添加到数据库中

    String abc = "ABC";
    String BBB = "Something longer than abc";
    

等等 编辑 :: 我正在使用从“添加 > 新项目 > 本地数据库”创建的“本地数据库”,那么我将如何连接到它?抱歉这个愚蠢的问题..我从未在.net中使用过数据库

【问题讨论】:

  • 你连接的是什么类型的数据库?
  • 我正在考虑使用本地 .sdf 文件
  • 更新了我的答案,以回应您使用 .sdf (Sql Ce / Sql Compact) 进行规范

标签: c# database


【解决方案1】:

根据需要您还可以考虑使用 Sql CE。我敢肯定,如果您指定了您正在考虑使用的数据库,或者您的要求,如果您确定您将获得正确且真实的连接字符串示例等。

编辑:这是 SqlCe / Sql Compact 的代码

    public void ConnectListAndSaveSQLCompactExample()
    {
        // Create a connection to the file datafile.sdf in the program folder
        string dbfile = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + "\\datafile.sdf";
        SqlCeConnection connection = new SqlCeConnection("datasource=" + dbfile);

        // Read all rows from the table test_table into a dataset (note, the adapter automatically opens the connection)
        SqlCeDataAdapter adapter = new SqlCeDataAdapter("select * from test_table", connection);
        DataSet data = new DataSet();
        adapter.Fill(data);

        // Add a row to the test_table (assume that table consists of a text column)
        data.Tables[0].Rows.Add(new object[] { "New row added by code" });

        // Save data back to the databasefile
        adapter.Update(data);

        // Close 
        connection.Close();
    }

记得添加对 System.Data.SqlServerCe 的引用

【讨论】:

  • 仅供参考:SQL CE 是 SQL Compact 是 SQL Mobile——CE 指的是稍微过时的版本;最新的(2008 代)称为 SQL Compact,而 SQL CE(Compact 版)是 2005 代。
  • 连接和数据适配器都应该在using 块中。
【解决方案2】:

我没有看到有人建议使用 SQL Compact;它与 SQLite 的相似之处在于它不需要安装并且针对低端数据库量身定制。它是从 SQL Mobile 发展而来的,因此占用空间小且功能集有限,但如果您熟悉 Microsoft 的 SQL 产品,它应该对它有一定的了解。

SQL Express 是另一种选择,但请注意,它需要独立安装,并且比应用程序的本地缓存可能需要的更强大。也就是说,它也比 SQL Compact 或 SQLite 更强大。

【讨论】:

【解决方案3】:

看来你是:

  • -制作将在多个系统上安装和运行的 C# 应用程序 电脑
  • -这需要一个本地数据库(我假设是一个 RDBMS)
  • -安装时需要生成空白数据库
  • -然后您需要能够连接到数据库并在何时填充它 应用运行。

一般来说,您似乎需要阅读有关在应用程序中使用小型数据库引擎的知识。我会首先查看SQLite,特别是如果您需要多操作系统功能(例如,您的C# 程序将在Microsoft 的.NET Framework 和Novell 的Mono 上运行)。有用于访问 SQLite 数据库的 C# 包装器。

【讨论】:

  • @Lou Franco - 感谢语法编辑。
【解决方案4】:

我相信这个问题是关于 Visual Studio 中的“本地数据库”项模板的:

【讨论】:

    【解决方案5】:

    您认为数据库是什么?根据您在问题中提供的信息,我建议使用 SQLite。

    您可以从他们的网站Sqlite.NET获取示例代码

    【讨论】:

      【解决方案6】:

      我不确定我是否完全理解您的要求,但对于轻量级、本地部署的数据库持久性而言,Sqlite 是一个不错的选择。看看这里:

      http://www.sqlite.org/

      这里是 ADO.NET 提供程序..

      http://sqlite.phxsoftware.com/

      【讨论】:

        【解决方案7】:

        对于 1)

        提供此功能的最简单方法是通过SQL Server Express User Instances。 SQL Server Express 是免费的,因此您的用户无需为 SQL Server 支付额外的许可,并且用户实例是基于文件的,这符合您的要求。

        对于 2)

        这是一个很大的话题。你可能想通过一些tutorials from Microsoft来感受一下如何连接DB等。

        【讨论】:

        • 对于 1):否! 很少将 Express Edition 用于单用户桌面数据库。相反,请使用进程内引擎,如 Sql Server Compact Edition、Sqlite 甚至 Access。
        • 我的意思是,这是最简单的方法(可能不是最好的方法)。我个人从未使用过任何进程内数据库引擎。如果这些引擎确实像 SQL Server 一样易于使用(并且具有相同的支持级别),那么我将予以纠正。
        • 它们通常更容易部署(xcopy 支持全新机器),几乎同样易于开发(你必须在你的开发盒上安装一个 sdk,但它们仍然会遵循相同的数据提供者模型作为 sql server),并且具有很多更好的用户体验,因为即使应用程序关闭,它们也不需要在后台运行 sql server。
        猜你喜欢
        • 2021-05-07
        • 2022-09-23
        • 1970-01-01
        • 2011-02-27
        • 2022-08-08
        • 1970-01-01
        • 1970-01-01
        • 2020-11-10
        • 2014-10-02
        相关资源
        最近更新 更多