对,这个类就是专门处理与数据库的连接与读写数据的。
问题应该是出在这个类的初始化过程中就要出错,其它类调用这个类的方法如下:
如Stock.cs类调用:
using System;
using System.Data;
using System.Data.OleDb;
using PTERP.Business.DataAccess;
using Microsoft.Web.UI.WebControls;namespace PTERP.Business.Stock
{
public class Stock:MarshalByRefObject 
{
protected PTERP.Business.DataAccess.DbSqlRun objDbSqlRun;
public Stock()
{
objDbSqlRun=new DbSqlRun(); //================>初始化调用DataAccess.cs类,然后在DataAccess.cs类报错,出错的行在protected virtual void Dispose(bool Disposing)函数体内最后一行。
}
          ....
          }
}

解决方案 »

  1.   

    我试过了,用以下配置,没什么问题阿,要不再多发一些代码?
    另外,我觉得写C#不用象C++那样讲究垃圾处理和销毁什么的,
    =======================================================
    [DataBase]
    data source=172.16.36.222
    user id=sa
    catalog=RemoteEdu
    password=1234567890
      

  2.   

    这是我的调用代码,把命名空间改了,呵呵===================================================
    using System;
    using System.Data;
    using System.Data.OleDb;
    using Wonder.SysConsole.User ;
    using System.Collections;
    using System.ComponentModel;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    //using Microsoft.Web.UI.WebControls;namespace Wonder.Edu
    {
    public class Stock:MarshalByRefObject 
    {
    protected DbSqlRun objDbSqlRun;
    public Stock()
    {
    objDbSqlRun=new DbSqlRun(); //================>初始化调用DataAccess.cs类,然后在DataAccess.cs类报错,出错的行在protected virtual void Dispose(bool Disposing)函数体内最后一行。
    }
    //....
    }
    }namespace Wonder.Edu
    {
    /// <summary>
    /// testdb 的摘要说明。
    /// </summary>
    public class testdb : System.Web.UI.Page
    {
    private Stock t = new Stock();
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion
    }
    }
      

  3.   

    昨天我自己调试了很久,问题似乎解决了,是自己写的类调用那个DataAccess.cs类时写法有问题,出错时的写法如下:
    public class Stock:MarshalByRefObject 
    {
    protected PTERP.Business.DataAccess.DbSqlRun objDbSqlRun;
    protected PTERP.Business.Common.Common objCommon;
    protected PTERP.Business.Buy.Buy objBuy;
    public Stock()
    {
    objDbSqlRun=new DbSqlRun();
                                    objCommon=new PTERP.Business.Common.Common();
                                    objBuy=new PTERP.Business.Buy.Buy();
    }
    //--------------------------------------------------------------------------
    public  void Dispose()
    {
    objDbSqlRun.Dispose();
    GC.SuppressFinalize(this);
    }
    //--------------------------------------------------------------------------------------运行正常的写法如下:
    public class Stock:MarshalByRefObject 
    {
    protected PTERP.Business.DataAccess.DbSqlRun objDbSqlRun;
    public Stock()
    {
    objDbSqlRun=new DbSqlRun();
    }
    //--------------------------------------------------------------------------
    public  void Dispose()
    {
    objDbSqlRun.Dispose();
    GC.SuppressFinalize(this);
    }
    //--------------------------------------------------------------------------------------把对Common和Buy类的调用对象objCommon和objBuy都写在各个方法内部,这样改写后就可以运行了,不知道问题是不是这个?