我想将两个 表 联系起来,就如,但两个表是分别存在在两个DataSet中,所以我试验时就出错了,如果是在同一个DataSet就没问题,我的代码如下:(如果去掉第10行,就不会出错,但不会显示Medical表的数据)1 News news=new News();
2 DataSet dsNews=news.GetNews();
3 Medical med=new Medical();
4 DataSet dsMed=med.GetMedical();
5 DataTable dtMed=new DataTable("Med");
6 dtMed=dsMed.Tables[0].Clone();
7 dtMed.TableName="Medical";
8 dsNews.Tables.Add(dtMed);
9
10 dsNews.Relations.Add("RS",dsNews.Tables["News"].Columns["Poster"],dsNews.Tables  ["Medical"].Columns["MID"]);
11 dgNews.DataSource=dsNews;
12 dgNews.DataBind();上面这段代码哪里出错了?
出现错误如下:未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[NullReferenceException: 未将对象引用设置到对象的实例。]
   AixinWebSite.Admin_News.Page_Load(Object sender, EventArgs e) +340
   System.Web.UI.Control.OnLoad(EventArgs e) +67
   System.Web.UI.Control.LoadRecursive() +35
   System.Web.UI.Page.ProcessRequestMain() +750 
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2032; ASP.NET 版本:1.1.4322.2032

解决方案 »

  1.   

    如上面的代码5 DataTable dtMed=new DataTable("Med");
    6 dtMed=dsMed.Tables[0].Clone();
    7 dtMed.TableName="Medical";
    8 dsNews.Tables.Add(dtMed);我要写成这样才不会出错,
    本来我是这样写的:dsNews.Tables.Add(dsMed.Tables[0]);但出错了,不知道何解
      

  2.   

    可以合并两个DataSet例如:
    DataSet ds1=GetDataSet1();
    DataSet ds2=GetDataSet2();ds1.Merge(ds2,true,MissingSchemaAction.AddWithKey);return ds1;//ds1就是合并后的DataSet了