初遇vs2008做报表时 数据显示行数不对问题

问题描述:

  之前我debug了程序 跟踪了dataset数据集里的数据(是查询出来要显示的数据),但当我用dataset对象填充到报表*.rpt的数据源后 

跟踪调试后rpt报表里显示的数据只显示两行,无论怎么去修改查询sql语句也都有两条记录(我跟踪的是:int ttt = 报表对象.Rows.Count)

解决方法:

     将OleDbDataAdapter.Fill(ds) 改为OleDbDataAdapter.Fill(ds,"student")得到解决;

     注意:OleDbDataAdapter.Fill(DataSet dataSet, string srcTable)其中srcTable用于表映射的源表的名称。

代码如下:

View Code
//先查出数据装载到数据集DataSet2中
            DataSet2 ds = new DataSet2();
            string path = System.Windows.Forms.Application.StartupPath;
            string tmpPath = path.Substring(0, path.LastIndexOf("\\"));
            tmpPath = tmpPath.Substring(0, tmpPath.LastIndexOf("\\")) + "\\DB\\test.mdb";//获取数据库的位置
            string strCon = "Provider=Microsoft.Jet.OleDb.4.0; Data Source= ";
            strCon += tmpPath;
            using (OleDbConnection oldbCon = new OleDbConnection(strCon))
            {
                oldbCon.Open();
                OleDbCommand oldbCmd = new OleDbCommand(@"select * from student", oldbCon);
                OleDbDataAdapter da = new OleDbDataAdapter(oldbCmd);
                da.Fill(ds, "student");
                oldbCon.Close();
                oldbCmd.Dispose();
                da.Dispose();
            }

            //设置报表的数据源
            CR_TEST2 cR = new CR_TEST2();
            cR.SetDataSource(ds);
            //int ttt = cR.Rows.Count;

            //设置窗口报表报表源
            crystalReportViewer1.ReportSource = cR;

 

posted @ 2013-04-17 14:57  第九剑  阅读(477)  评论(0编辑  收藏  举报