通过C#连接到脱机数据库的最佳方式是什么?

时间:2011-07-01 17:08:12

标签: c# sql database

我有一个需要以表格格式存储大量数据的应用程序。我想要一些易于配置的东西,它也是用C#.NET构建的。我不想要包含额外的DLL文件。

还有一些指向教程的链接,解释连接过程和查询会很棒。我假设这就像PHP一样,但我需要哪种数据库类型?

它需要能够容纳大量数据,并且执行备份的能力会很好。

3 个答案:

答案 0 :(得分:3)

我不确定“使用C#.NET内置”是什么意思,但SQL Server Express附带了Visual Studio。

如果您正在寻找“自包含,可嵌入,零配置的SQL数据库引擎”,您可以尝试System.Data.SQLite

答案 1 :(得分:1)

查看SQL Server Compact

的简易性

不是内置但很容易添加,没有安装和免费。

答案 2 :(得分:1)

如果你想要一个脱机数据库,你可以使用SQL Server CE,因为它是一个不需要连接到服务器实例的进程内数据库,这正是你想要的。下面是C#中有关如何连接的示例,并填充数据表以操作某些数据。

// this connectionstring can also be an absolute file path
string connectionString = "Data Source=|DataDirectory|\mydatabase.sdf";
using (SqlCeConnection connection = new SqlCeConnection(connectionString)) {
    try {
        connection.Open();
    } 
    catch (SqlCeException) {
        // connection failed
    }
    using (SqlCeDataAdapter adapter = new SqlCeDataAdapter("SELECT * FROM <table>", connection)) {
        using (DataTable table = new DataTable("<table>")) {
            adapter.Fill(); // Populate the table with your select statement

            // do stuff with the datatable
            // example:
            foreach (DataRow row in table.Rows) {
                row["mycolumn"] = "somedata";
            }

            table.AcceptChanges();
        }
    }
}

您甚至可以使用命令而不是数据表

using (SqlCeCommand command = new SqlCeCommand("DELETE FROM <table> WHERE id = '0'", connection)) {
    command.ExecuteNonQuery(); // executes command
}