check (e == null) || (e.Node == null)
dg0.CaptionText="项目组";  // 你的dg0 在哪里赋值的?

解决方案 »

  1.   

    dg0是一个datagrid控件啊。
    这里绑定:if (dg0.DataSource==null) dg0.SetDataBinding(dt0,"");
      

  2.   

    问题出在这里:
    我在数据访问层里有2个重载的方法:
    public override DataSet exeSqlForDataSet(string QueryString,string TableName) 
    {
       OleDbCommand cmd=new OleDbCommand();
    cmd.Connection=this.conn ; 
       if(inTransaction)
         cmd.Transaction=trans;
       DataSet ds = new DataSet();
       OleDbDataAdapter ad = new OleDbDataAdapter();
    cmd.CommandText=QueryString; 
       ad.SelectCommand =cmd; 
       ad.Fill(ds,TableName); 
       return ds; 
       }
    public override DataSet exeSqlForDataSet(string QueryString,string TableName,DataSet ds) 
    {
       OleDbCommand cmd=new OleDbCommand();
    cmd.Connection=this.conn ; 
       if(inTransaction)
         cmd.Transaction=trans;
       OleDbDataAdapter ad = new OleDbDataAdapter();
    cmd.CommandText=QueryString; 
       ad.SelectCommand =cmd; 
       ad.Fill(ds,TableName); 
       return ds; 
       }
    ——————————————————————
    我把ds0=db.exeSqlForDataSet(sql,"extrainfo",ds0)改成
    ds0=db.exeSqlForDataSet(sql,"extrainfo")
    就不会出现上述问题,但是这样的话,ds0里面另外一个表"baseinfo"的数据就没有了,请问是不是我的数据访问层的方法有问题?该怎么改,使得保留ds0里其他表的内容,仅更改指定表的内容。
    解决即给分!!!
      

  3.   

    /// <summary>
    /// 执行SQL语句并返回查询结果
    /// (ex:FillDataSet(ds,"Select * from MemberInfo","MemberInfo")) //在已经存在的DataSet中添加表
    /// 不需要打开/关闭连接
    /// </summary>
    /// <param name="ds" >已经存在的DataSet,添加表</param>
    /// <param name="sSql">要执行的Sql语句</param>
    /// <param name="sTable">返回的DataSet中的表名</param>
    /// <returns></returns>
    public  override  bool FillExistDataSet(ref DataSet ds,string sSql,string sTable)
    {
    bool bRe = true;
    try
    {
    Open(); SqlDataAdapter sqlDA = new SqlDataAdapter();
    sqlDA.SelectCommand = command;
    command.CommandText = sSql;
    command.CommandType = CommandType.Text; int nRows = sqlDA.Fill( ds, sTable );// if(nRows == 0 )
    // bRe = false;
    }
    catch(Exception ex )
    {

    SaveException(ex);
    return false;
    } return bRe;
    }
      

  4.   

    楼上的大侠,按照你的意思,加了ref还是同样的问题!
    555555555
      

  5.   

    ref DataSet ds
    //Add This
    if(ds.Tables[sTable] ! = null) ds.Tables[sTable].Clear();
    sqlDA.Fill( ds, sTable );
      

  6.   

    public override DataSet exeSqlForDataSet(string QueryString,string TableName,DataSet ds) 
    {
       OleDbCommand cmd=new OleDbCommand();
    cmd.Connection=this.conn ; 
       if(inTransaction)
         cmd.Transaction=trans;
                       DataTable dt=ds.Tables["TableName"].Clone();
       OleDbDataAdapter ad = new OleDbDataAdapter();
    cmd.CommandText=QueryString; 
       ad.SelectCommand =cmd; 
       ad.Fill(dt); 
                      ds.Tables.Add(dt);
                       
       return ds; 
       }
      

  7.   

    gujianxin(木头象) 
    请问你的邮件是多少?
    我把所有代码都发给你,帮我诊断一下,谢谢!
      

  8.   

    [email protected]不过我手边没有Oracle数据库,(现在在外面作项目)不过我看到了你要一个数据访问基类,我现在用的不太方便给你,给你一个旧版本(只支持SqlServer)
      

  9.   

    http://www.csdn.net/cnshare/soft/16/16749.shtm