Я использую SqlDependency
в коде C# для оповещения о моем приложении при изменении значения конкретного столбца в строке в базе данных. Я мог бы достичь этого, используя встроенный SQL.SQL-зависимость с использованием хранимой процедуры
Я бы хотел заменить его хранимой процедурой, но по какой-то причине код не выполняет хранимую процедуру. Я вставляю несколько строк кода из своего приложения. Пожалуйста, дайте мне знать, как изменить его, чтобы я мог заменить встроенный SQL на вызов процедуры для достижения того же.
var con = new SqlConnection(ConnectionString);
SqlDependency.Stop(con.ConnectionString);
SqlDependency.Start(con.ConnectionString);
var connection = new SqlConnection(con.ConnectionString);
connection.Open();
try
{
using (var command = new SqlCommand("inlinesql", connection))
{
var dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(OnDependencyChange);
using (SqlDataReader rdr = command.ExecuteReader())
{
try
{
if (rdr.HasRows)
{
_autoEvent.WaitOne();
}
else
{
continue;
}
}
finally
{
rdr.Close();
}
}
}
}
finally
{
connection.Close();
SqlDependency.Stop(con.ConnectionString);
}
void OnDependencyChange(object sender, SqlNotificationEventArgs e)
{
dosomething();
}
Помогло ли ниже ответ? Если да, отметьте в качестве ответа. Благодаря! – ragerory