C# SQL事务处理时整个表被占用,求解决方法!
c# winform程序在进行SQL事务处理过程时,整个表被占用,其它程序进程访问时被挂起,求解决方法?
- C# code
private void button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("server= .\\SQLEXPRESS;uid=testuser1;pwd=test123;database=manage"); conn.Open(); SqlCommand cmd = new SqlCommand(); SqlTransaction sqltran = conn.BeginTransaction(); cmd.Connection = conn; cmd.Transaction = sqltran; try { for (int i = 0; i < 99999; i++) { cmd.CommandText ="UPDATE [newplan] SET [dept] = '" + i + "' WHERE [number]='11'"; cmd.ExecuteNonQuery(); txt_number.Text = i.ToString(); } sqltran.Commit(); } catch { sqltran.Rollback(); } finally { conn.Close(); }
[解决办法]
用更新的ID和新值,创建临时表
启动事务,创建内联接更新,执行,提交.
[解决办法]
重复10万次同一个数据库操作有意义么?你是故意想让CPU烧掉、故意想让机器死机?
[解决办法]
看完了一身冷汗,还能这样用
还有很多东西要学啊
前几天我一直把那个 Transaction 写在存储过程里