2010-03-20 3 views

ответ

3

Размесчение DDL через ExecuteNonQuery команды:

mySqlCommand = mySqlConnection.CreateCommand(); 

mySqlCommand.CommandText = 
    "ALTER DATABASE Accounting MODIFY FILE (NAME = 'Accounting', SIZE = 25) "; 

mySqlConnection.Open(); 
int result = mySqlCommand.ExecuteNonQuery(); 
mySqlConnection.Close(); 

Подобные примеры можно найти здесь (показывая вопросы, связанные с Snapshot Isolation, но ideais в основном то же самое):

http://msdn.microsoft.com/en-us/library/tcbchxcb.aspx

0

Следующий пример даст вам лучший обзор. Определив параметры, вы можете передать некоторые вещи, которые не обязательно должны быть статическими. Используя using, убедитесь, что все правильно установлено/закрыто (и/или повторно использовано при необходимости).

 public const string sqlDataConnectionDetails = "Data Source=YOUR-SERVER;Initial Catalog=YourDatabaseName;Persist Security Info=True;User ID=YourUserName;Password=YourPassword"; 

    public static void ChangeDatabaseSize(int databaseSize) { 
     const string preparedCommand = @" 
         ALTER DATABASE Accounting 
         MODIFY FILE 
         (NAME = 'Accounting', SIZE = @size) 
         "; 
     using (var varConnection = SqlConnectOneTime(sqlDataConnectionDetails)) 
     using (SqlCommand sqlWrite = new SqlCommand(preparedCommand, varConnection)) { 
      sqlWrite.Parameters.AddWithValue("@size", databaseSize); 
      sqlWrite.ExecuteNonQuery(); 
     } 
    } 

Это метод поддержки, который позволяет легко устанавливать соединение каждый раз, когда вы хотите писать/читать что-то в базе данных.

public static SqlConnection SqlConnectOneTime(string varSqlConnectionDetails) { 
     SqlConnection sqlConnection = new SqlConnection(varSqlConnectionDetails); 
     try { 
      sqlConnection.Open(); 
     } catch { 
      DialogResult result = MessageBox.Show(new Form { 
                   TopMost = true 
                  }, "No connection to database. Do you want to retry?", "No connection (000001)", MessageBoxButtons.YesNo, MessageBoxIcon.Stop); 
      if (result == DialogResult.No) { 
       if (Application.MessageLoop) { 
        // Use this since we are a WinForms app 
        Application.Exit(); 
       } else { 
        // Use this since we are a console app 
        Environment.Exit(1); 
       } 
      } else { 
       sqlConnection = SqlConnectOneTime(varSqlConnectionDetails); 
      } 
     } 
     return sqlConnection; 
    } 
Смежные вопросы