Выполнение специальных команд 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, чтобы он знал, что делать.
Затем программа открывает соединение, выполняет команду и закрывает соединение. Это все, что нужно.