Как получить триггер вызова на c # Метод с использованием процедуры сохранения, когда я обновляю данные таблицы без использования sqldependency - PullRequest
0 голосов
/ 14 февраля 2019

Я хочу вызвать метод C #, когда я обновляю данные таблицы или удаляю данные таблицы любым способом, например, sql newquery «Удалить top (1) FROM [dbo]. [Leaves]», как это, и вызвать метод c #, используя процедуру store.Я выполняю это в зависимости от SQL, но мне это не нужно, я выполняю это с помощью процедуры магазина.Вы можете увидеть мой код sqldependecey.но я хочу еще один способ вызвать этот метод с помощью процедуры магазина.

public class NotificationEvent
{
    private delegate void RateChangeNotification(DataTable table);
    private SqlDependency dependency;
    string ConnectionString = @"Data Source=.;Initial Catalog=Message;Integrated Security=True";
    string UserName = Environment.UserName;

    public void RegisterForNotification()
    {
        var connectionString = ConnectionString;
        using (var connection = new SqlConnection(connectionString))
        {
            connection.Open();

            var queryString = "SELECT [ID] FROM [dbo].[Leaves]";
            using (var oCommand = new SqlCommand(queryString, connection))
            {
                // Starting the listener infrastructure...
                SqlDependency.Start(connectionString);

                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 OnNotificationChange(object sender, SqlNotificationEventArgs e)
    {
        Console.WriteLine("Notification Info: " + e.Info);
        //Re-register the SqlDependency. 
        //var oDependency = new SqlDependency();
        //oDependency.OnChange += OnNotificationChange;
        RegisterForNotification();
    }
}

1 Ответ

0 голосов
/ 14 февраля 2019

@ Umar Asif Если проблема, с которой вы сталкиваетесь, полностью связана с обменом данными между базами данных, я бы рекомендовал концепцию под названием «Репликация слиянием» в SQL Server (используя Publisher-Subscriber (s)) между базами данных:

https://docs.microsoft.com/en-us/sql/relational-databases/replication/merge/merge-replication?view=sql-server-2017

В противном случае, если ваша проблема требует решения ТОЛЬКО посредством вызова метода C #, обратитесь:

Как вызвать функцию C # в хранимой процедуре

...