Я хочу вызвать метод C #, когда я вставляю новую запись в таблицу и вставляю xml в очередь компонента Service Broker из хранимой процедуры.Я могу выполнить это с помощью SqlDependency
, но мне это не нужно - я хочу выполнить это с помощью хранимой процедуры.
Вы можете увидеть мой код, используя SqlDependecy
.Но я хочу еще один способ вызова метода C # из хранимой процедуры с использованием SQL Server Service Broker (не DB в DB).
public void Notification()
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
var queryString = "SELECT [ID] FROM [dbo].[Message]";
using (var oCommand = new SqlCommand(queryString, connection))
{
// Starting the listener infrastructure...
SqlDependency.Stop(connectionString, "queueName");
SqlDependency.Start(connectionString, "queueName");
var oDependency = new SqlDependency(oCommand);
oDependency.OnChange += OnNotificationChange;
// NOTE: You have to execute the command, or the notification will never fire.
oCommand.ExecuteReader();
}
}
}
private void ChangeNotification(object sender, SqlNotificationEventArgs e)
{
Console.WriteLine("Notification Info: " + e.Info);
//Re-register the SqlDependency.
//var oDependency = new SqlDependency();
//oDependency.OnChange -= OnNotificationChange;
RegisterForNotification();
}