解决方案 »

  1.   

    datatable dt;
    dt一开始数据从哪里来,自己写吧
    然后是加一行:datarow dr=dt.newrow();
    dr[0]=
    dr[1]=
    dt.rows.add(dr)
      

  2.   

    添加column
    添加row,然后为cell赋值
      

  3.   

    来一个直观的思路吧。
    1.通过Select distinct 点号from 交叉表数据库  这个SQL得到一个DataTable,命名为dt点号
    2.通过Select distinct 周期,日期 from 交叉表数据库  这个SQL得到一个DataTable,命名为dt周期日期
    3.循环判断是否存在。
    for each drw点号 in dt点号.rows()
      for each drw周期日期 in dt周期日期.rows()
        if (select * from 交叉表数据库 where 点号=drw点号("点号") and 周期=drw周期日期("周期") and 日期=drw周期日期("日期")) 能取得数据 then
         这个交叉项不是空,做你的处理吧。
      else
        这个交叉项是空,做你的处理吧。
      end if
      next for
    next for大体上就是类似于上面的样子。在实际实现的时候,不要在循环里面写SQL文,因为那样做的话,访问数据库的次数过多。
    可以先把交叉表数据库中需要的数据取出来形成一个数据集,然后把 步骤1,2,3中的SQL文都改成对内存中的数据集的操作。
      

  4.   


    我写了函数
            private void SelectDistinct(DataSet ds, OleDbConnection dbConn, string strTableName)
            {
                string strSql1 = "select distinct 点号 from " + strTableName;
                OleDbDataAdapter dbda1 = new OleDbDataAdapter(strSql1, dbConn);
                dbda1.Fill(ds.Tables["DataTable_DistinctPoint"]);            string strSql2 = "select distinct 周期,日期 from " + strTableName;
                OleDbDataAdapter dbda2 = new OleDbDataAdapter(strSql2, dbConn);
                dbda2.Fill(ds.Tables["DataTable_DistinctPeriodDate"]);
            }下面的不会了,请大神指教