Существует также некоторая хорошая дискуссия об этом здесь: действительно ли это - надлежащее использование взаимного исключения?
В зависимости от потребностей вы также можете рассмотреть 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
Похоже, вы:
В общем, кажется, что вам нужно прочитать об использовании небольшого движка базы данных для приложений. Я бы начал с изучения SQLite , особенно если вам нужна возможность работы с несколькими ОС (например, ваша программа на C # будет работать на Microsoft .NET Framework и Novell Mono). Существуют оболочки C # для доступа к базе данных SQLite.
Я не вижу, чтобы кто-нибудь предлагал SQL Compact; он похож на SQLite в том, что не требует установки и адаптируется к базе данных низкого уровня. Он вырос из SQL Mobile и, как таковой, имеет небольшие размеры и ограниченный набор функций, но если вы знакомы с предложениями Microsoft SQL, он должен быть немного знаком.
SQL Express - еще один вариант, но имейте в виду, что он требует автономная установка и немного мощнее, чем вам может потребоваться для локального кеша приложения. Тем не менее, он также немного мощнее, чем SQL Compact или SQLite.
Что вы считаете базой данных? Из того немногого, что вы указали в своем вопросе, я бы предложил SQLite.
Вы можете получить образец кода с их сайта Sqlite.NET
Для 1)
Самый простой способ предоставить эта функция реализуется через Пользовательские экземпляры SQL Server Express . SQL Server Express является бесплатным, поэтому вашему пользователю не нужно платить дополнительную лицензию на SQL Server, а пользовательский экземпляр основан на файлах, что соответствует вашим требованиям.
Для 2)
Это большая тема. Вы можете просмотреть некоторые из руководств от Microsoft , чтобы получить представление о том, как подключиться к БД и т. Д.
Не уверен, что я полностью понимаю, о чем вы спрашиваете, но Sqlite - хороший вариант для облегченной, локально развернутой сохраняемости базы данных. Посмотрите здесь:
и здесь для провайдера ADO.NET ..
Я считаю, что этот вопрос касается шаблона элемента «Локальная база данных» в Visual Studio: