2

我正在创建一个应用程序,我想使用存储在客户端本地计算机上的本地数据库。我正在争论是否应该使用SQLITE或者 Visual Studio 中有什么东西可以帮助我。另一件事是我想在启动应用程序时以编程方式在用户目录中创建数据库。

我在网上看到了一些东西,但这些文章都是关于 SQL Server 的东西,我不想用这个应用程序做。所有数据都需要存储在本地机器上。

4

3 回答 3

5

您可以使用SQL Server Compact,它在 Visual Studio 中有工具。它与 SQL Server 语法兼容,但将其数据存储在本地文件中,您可以动态创建该文件(例如,在应用程序启动时)。

于 2012-11-14T17:18:35.187 回答
2

您可以使用其网站提供的库即时创建 SQLite 数据库。我已经在许多项目中将它用于我的个人代码,并在 Data Explorer(IBM 产品)的一些内部架构中使用它。一些用于创建数据库文件的示例 C#:

        if (!Directory.Exists(Application.StartupPath + "\\data"))
        {
            Directory.CreateDirectory(Application.StartupPath + "\\data");
        }
        SQLiteConnection conGlobal;
        if (!File.Exists(dbGlobal))
        {
            conGlobal = new SQLiteConnection("Data Source=" + dbGlobal + ";New=True;Compress=True;PRAGMA synchronous = 1;PRAGMA journal_mode=WAL");
            conGlobal.SetExtendedResultCodes(true);
            firstRun = true;
        }
        else
        {
            conGlobal = new SQLiteConnection("Data Source=" + dbGlobal + ";Compress=True;PRAGMA synchronous = 1;PRAGMA journal_mode=WAL");
            conGlobal.SetExtendedResultCodes(true);
        }
        try
        {
            conGlobal.Open();
        }
        catch (Exception)
        {
            //do stuff
        }

如果 new=true 作为连接字符串传递,只需启动到文件的连接就会创建它。然后您可以像查询任何数据库一样查询它并获得结果。

您还可以对数据库文件进行密码保护,以防止仅使用 SQLite-Shell 或不同的 SQLite DB 查看器打开它们即可访问它们。

有关在连接字符串中传递的 pragma 语句的更多信息,请参见以下内容:http ://www.sqlite.org/pragma.html

于 2012-11-14T17:22:49.383 回答
1

我不确定是否以编程方式(这可能是您的意思,对吗?)创建数据库,但SQL Server Compact Edition过去为我提供了简单的应用程序。它是嵌入式的,甚至在中等信任下运行。

于 2012-11-14T17:19:27.580 回答