SQL管理オブジェクトを使用してSQLサーバーに接続しています。現時点では、私の例では単純な「テーブルの作成」コマンドが含まれています。
このコードを意図的に2回実行して、「テーブルは既に存在します」というエラーを発生させます。
ただし、以下のイベントはトリガーされません。
誰かがアイデアを思いついたのですが、コードでこのメッセージを保持する方法を教えてください。それ以外の場合は、ExecutionTypeを変更して、例外の原因となるエラーで停止します(これはやりたくない、続行したい)
私のコード:
public void executeSomeSQL() {
FileInfo file = new FileInfo(@"\c:\sqlcommands.sql");
string script = file.OpenText().ReadToEnd();
SqlConnection conn = new SqlConnection(sqlConnectionString);
conn.InfoMessage +=new SqlInfoMessageEventHandler(conn_InfoMessage);
Server server = new Server(new ServerConnection(conn));
server.ConnectionContext.InfoMessage += new SqlInfoMessageEventHandler(ConnectionContext_InfoMessage);
server.ConnectionContext.ExecuteNonQuery(script,ExecutionTypes.ContinueOnError);
MessageBox.Show("All Done");
}
イベント:-
public void conn_InfoMessage(object sender, SqlInfoMessageEventArgs e) {
textBox3.Text += "1:"+DateTime.Now.ToString();
}
public void ConnectionContext_InfoMessage(object sender, SqlInfoMessageEventArgs e) {
textBox3.Text += "2:" + DateTime.Now.ToString();
}