【发布时间】:2016-04-14 18:45:21
【问题描述】:
我收到了这个异常消息:
事务(进程 ID 55)与另一个进程在锁资源上死锁,并被选为死锁牺牲品。
堆栈跟踪中涉及的唯一代码行是此处的最后一行:
public static DataTable ExecuteSQLReturnDataTable(string sql, CommandType cmdType, params SqlParameter[] parameters)
{
using (DataSet ds = new DataSet())
using (SqlConnection connStr = new SqlConnection(CPSConnStr))
using (SqlCommand cmd = new SqlCommand(sql, connStr))
{
cmd.CommandType = cmdType;
cmd.CommandTimeout = EXTENDED_TIMEOUT;
foreach (var item in parameters)
{
cmd.Parameters.Add(item);
}
try
{
cmd.Connection.Open();
new SqlDataAdapter(cmd).Fill(ds);
这是我用于各种查询的通用方法;我最近没有更改它,也从未见过这个特殊的异常。
如何防止再次抛出此异常?
【问题讨论】:
标签: c# dataset sqlcommand database-deadlocks sqldataadapter