Каков наилучший способ подключения к автономной базе данных через C # - PullRequest
0 голосов
/ 01 июля 2011

У меня есть приложение, которое должно хранить множество данных в табличном формате. Я хочу что-то простое в настройке, которое также встроено в C # .NET. Я не хочу включать дополнительные файлы DLL.

Также было бы неплохо иметь ссылки на учебные пособия, объясняющие процесс подключения и запросы. Я предполагаю, что это так же, как PHP, но какой тип базы данных мне нужен?

Он должен уметь хранить много данных, и было бы неплохо выполнять резервное копирование.

Ответы [ 3 ]

3 голосов
/ 01 июля 2011

Я не уверен, что вы подразумеваете под "встроенным в C # .NET", но SQL Server Express поставляется с Visual Studio.

Если вы ищете «автономное, встраиваемое ядро ​​базы данных SQL с нулевой конфигурацией», вы можете попробовать System.Data.SQLite .

1 голос
/ 01 июля 2011

Если вам нужна автономная база данных, вы можете использовать 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
}
1 голос
/ 01 июля 2011

Обратите внимание на простоту SQL Server Compact

Не встроенный, но легко добавляемый, без установки и бесплатной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...