应用程序中的服务器错误。
--------------------------------------------------------------------------------事务(进程 ID 57)与另一个进程已被死锁在 lock | communication buffer 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 事务(进程 ID 57)与另一个进程已被死锁在 lock | communication buffer 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。源错误: 
行 72:  Db db=new Db();
行 73:  db.GetFixCon(1);
行 74:  DataTable dt_zb=db.SqlCmd("up_yjys_zb_new '"+begin_date+" 00:00:00','"+end_date+" 23:59:59'").Tables[0];
行 75:  db.Close();
行 76: 
 源文件: c:\inetpub\wwwroot\dlx\frm_yjys_detail.aspx.cs    行: 74 堆栈跟踪: 
[SqlException: 事务(进程 ID  57)与另一个进程已被死锁在  lock | communication buffer 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。]
   System.Data.SqlClient.SqlDataReader.Read() +157
   System.Data.Common.DbDataAdapter.FillLoadDataRow(SchemaMapping mapping) +175
   System.Data.Common.DbDataAdapter.FillFromReader(Object data, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) +260
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) +129
   System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +304
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +77
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +36
   dytCom.Db.SqlCmd(String str)
   dlx.frm_yjys_detail.Getyjys_zb(String begin_date, String end_date) in c:\inetpub\wwwroot\dlx\frm_yjys_detail.aspx.cs:74
   dlx.frm_yjys_detail.Getyjys(String begin_date, String end_date, String inco_id) in c:\inetpub\wwwroot\dlx\frm_yjys_detail.aspx.cs:87
   dlx.frm_yjys_detail.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\dlx\frm_yjys_detail.aspx.cs:35
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +731 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573

解决方案 »

  1.   

    其中up_yjys_zb_new 为一存储过程,在其中的一台服务器上,还有另一存储过程up_yjys_wl_new ,在另一服务器上/(同一服务器上有部分同步数据),现在要把这两个过程的数据合并在一个datatable里,出现的错误提示,后台主要代码如下:
    public class frm_yjys_detail : System.Web.UI.Page
    {
    protected System.Data.DataView dataView1;
    protected System.Web.UI.WebControls.DataGrid MyDataGrid;
       
            
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    string inco_id="gd20";
    //string Customer_id
    string begin_date="2005-04-28" ;
    string end_date ="2005-05-28" ;

    DataTable dt= Getyjys(begin_date,end_date,inco_id);
    //DataTable dt= this.Getyjys_zb(begin_date,end_date);

    MyDataGrid.DataSource=dt.DefaultView;
    MyDataGrid.DataBind();

    }
    }
    private DataTable Getyjys_wl(string begin_date,string end_date,string inco_id)
    {  
    Db db=new Db();
    db.GetFixCon(1);
    DataTable dt_wl=db.SqlCmd("up_yjys_wl_new '"+begin_date+" 00:00:00','"+end_date+" 23:59:59','"+inco_id+"'").Tables[0];
    db.Close();
               
    return dt_wl;
    }

    private DataTable Getyjys_zb(string begin_date,string end_date)
    {
    Db db=new Db();
    db.GetFixCon(1);
    DataTable dt_zb=db.SqlCmd("up_yjys_zb_new '"+begin_date+" 00:00:00','"+end_date+" 23:59:59'").Tables[0];
    db.Close(); return dt_zb;
    }

    private DataTable Getyjys(string begin_date,string end_date,string inco_id)
    {    //得到总部
    DataTable dt_zb=Getyjys_zb(begin_date,end_date);
    //得到物流
    DataTable dt_wl=Getyjys_wl(begin_date,end_date,inco_id);
                
    //总部和物流都有业绩及应收款余额的客户合并其对应选项
    for(int i=1;i<dt_wl.Rows.Count;i++)
    {
    for(int j=1;j<dt_zb.Rows.Count;j++)

    if(dt_wl.Rows[i][0]==dt_zb.Rows[j][0])
    {
    //DataRow dr=dt_wl.NewRow();
    for(int m=0;m<11;m++)
    {    
    decimal sum=Convert.ToDecimal(dt_wl.Rows[i][m])+Convert.ToDecimal(dt_zb.Rows[j][m]);
    dt_wl.Rows[i][m]=sum.ToString();
    //dt_wl.Rows[i][m]=dt_zb.Rows[j][m];
    //dt_wl.Rows.Add(dr);
    Response.Write(sum);
    }
    }
    }
                 

    //return dt_zb;
    return dt_wl;
    }
      

  2.   

    try to run your sql codes in sql Analyzer and find whether still exists such error first
      

  3.   

    DataTable dt_zb=db.SqlCmd跟进去这句话,看看什么原因
    .
      

  4.   

    存储过程是没有问题的。。
    我分别调用这两个过程。。
    分别得到我要的数据。。
    就是不能把他们id相同的数据合并在一起。。
    合并以后只显示up_yjys_wl_new这个过程的结果集
      

  5.   

    在打开查询分析器,在其中输入以下语句:dbcc traceon (1204, 3605, -1)这样可以在SQL的日志中获得更多关于发生死锁现象的详细信息。
      

  6.   

    如果你用ASP.NET,可能是aspnet_wp.exe的问题,看看http://support.microsoft.com/default.aspx?scid=kb;zh-cn;313888http://www.microsoft.com/china/msdn/archives/technic/develop/database/0522c.asphttp://support.microsoft.com/default.aspx?scid=kb;zh-cn;828222
      

  7.   

    推荐使用Profiler对当前SQL SERVER进行监视,具体做法如下:“开始”——“运行”——输入“Profiler”后确定;然后点击“new trace”,连接到指定的SQL的实例