我正在使用事务运行多个插入.我正在使用SqlDependency类让客户端机器知道服务器何时更新.
我遇到的问题是每当我使用事务插入时,无论我为事务设置了什么隔离级别,SqlNotificationEventArgs都会将e.Info作为Isolation返回,这表明我为那些事务设置了错误的隔离级别(我认为) .当我在不使用事务的情况下插入时,一切都顺利进行.
我的问题是,使用Sql Notification时,事务支持的隔离级别(如果有)是什么?
以下是我用于通知的一些代码:
void DataChanged(object sender, SqlNotificationEventArgs e) {
var i = (ISynchronizeInvoke)_form;
if (i.InvokeRequired) {
var tempDelegate = new OnChangeEventHandler(DataChanged);
object[] args = { sender, e };
i.BeginInvoke(tempDelegate, args);
} else {
var dependency = (SqlDependency)sender;
if (e.Type == SqlNotificationType.Change) {
dependency.OnChange -= DataChanged;
GetData(dependency);
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于交易:
public void ExecuteNonQueryData(List<string> commandTexts) {
SqlConnection connection = null;
var command = new SqlCommand();
SqlTransaction transaction = null;
try {
connection = new SqlConnection(GetConnectionString());
connection.Open();
transaction = …Run Code Online (Sandbox Code Playgroud) 是否可以SqlDependency在不执行查询的情况下在Sql Server中运行C#?
我有一些表可以增长得相当大.跨表执行查询以判断行是否已更改可能需要很长时间.