Выполнение специальных команд SQL в C#
В этом примере используется OLE DB для подключения к базе данных доступа. (К сожалению, этот метод не может создать базу данных, но вы можете использовать любую старую базу данных, а затем модифицировать ее с помощью этой техники.)
При запуске программы выполняется следующий код для подготовки объекта соединения.
// Объект соединения.
private OleDbConnection Conn;
// Подготовьте соединение с базой данных.
private void Form1_Load(object sender, EventArgs e)
{
// Создаем имя файла базы данных.
// Предполагается, что он находится в каталоге исполняемого файла.
string file_name = Application.StartupPath + "\\Books.accdb";
// Подключиться.
Conn = new OleDbConnection(
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + file_name + ";" +
"Mode=Share Deny None");
// Выберите первую команду образца.
cboSamples.SelectedIndex = 0;
}
Обратите внимание, что этот код подготавливает соединение, но фактически не открывает его.
Также обратите внимание, что в коде используется поставщик базы данных Microsoft.ACE.OLEDB.12.0. Это работает с базами данных Access 2007 (с расширением .accdb).
Используйте поле со списком программ, чтобы выбрать образец команды SQL или введите его в текстовое поле, а затем нажмите «Выполнить». Следующий код показывает, как программа выполняет команду в текстовом поле.
// Выполните команду.
private void btnExecute_Click(object sender, EventArgs e)
{
// Создаем объект команды для представления команды.
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = Conn;
cmd.CommandText = txtCommand.Text;
// Откройте соединение и выполните команду.
try
{
Conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Done");
}
catch (Exception ex)
{
MessageBox.Show("Error executing command.\n" +
ex.Message);
}
finally
{
// Закройте соединение, удастся ли нам или нет.
Conn.Close();
}
}
Этот код создает объект OleDbCommand для представления команды. Он устанавливает свойство Connection, чтобы он знал, какое соединение использовать, и устанавливает его свойство Command, чтобы он знал, что делать.
Затем программа открывает соединение, выполняет команду и закрывает соединение. Это все, что нужно.
