J'utilise les objets de gestion SQL pour me connecter au serveur SQL. Pour l'instant, ils contiennent de simples commandes "create table" pour mon exemple.
J'ai exécuté ce code deux fois dans le but de provoquer une erreur pour "table already exists".
Cependant, les événements ci-dessous ne sont pas déclenchés.
Quelqu'un a-t-il une idée de la manière dont je peux obtenir ce message dans mon code, à part en changeant le type d'exécution pour qu'il s'arrête sur les erreurs provoquant des exceptions (ce que je ne veux pas faire, je veux continuer) ?
Mon code :
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");
}
Événements:-
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();
}