当前位置:编程学习 > C#/ASP.NET >>

求高手指点!

我的在调试没有问题,运行的刚开始也没有问题,当我点上面的按钮的时候就提示我报表加载失败!请问高手这是为什么啊?
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public static DataTable GetCheckData(string sex)
        {
         
            SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=STUDENT;User ID=sa;Password=zhangnan");
            SqlCommand cmd = new SqlCommand("select * from Sstudent", conn);
            
            cmd.Parameters.Add("@ssex", SqlDbType.VarChar, 20);
            cmd.CommandText = "select *from Sstudent where ssex=@ssex";
           
            cmd.Parameters[0].Value = sex;
            SqlDataAdapter da=new SqlDataAdapter();
            da.SelectCommand = cmd;
            DataSet ds=new DataSet();
            da.Fill(ds, "Sstudent");
            return ds.Tables[0];
         }
        private void crystalReportViewer1_Load(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();
            SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=STUDENT;User ID=sa;Password=zhangnan");
            SqlCommand cmd = new SqlCommand("select * from Sstudent", conn);
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            da.Fill(ds, "Select * from Sstudent");
        }

        public string txtsex { get; set; }
        private void button1_Click(object sender, EventArgs e)
        {
            
            DataTable dataTable = GetCheckData(maskedTextBox1.Text.Trim());  
                for(int index=0;index<dataTable.Rows.Count;index++)
                {
                    string ss = dataTable.Rows[index]["ssex"].ToString().Trim();
                    if (ss.Equals(maskedTextBox1.Text.Trim()))
                    {
                        DataSet ds = new DataSet();
                        ReportDocument optDoc=new ReportDocument();
                        optDoc.Load(Application.StartupPath + "CrystalReport1.rpt");
                        optDoc.SetDataSource(GetCheckData(maskedTextBox1.Text.Trim()));
                        optDoc.SetDataSource(ds.Tables["select * from Sstudent"]);

                        crystalReportViewer1.ReportSource = optDoc;
                        crystalReportViewer1.Visible = true;
                       
                        break;
                    }
                  
                }
           
            
        }
    } --------------------编程问答--------------------
引用楼主 zhangnan20102010 的回复:
optDoc.Load(Application.StartupPath + "CrystalReport1.rpt");


很可能这个报表路径不对,因Application.StartupPath指向的是EXE执行目录,你把RPT模板文件放在exe执行目录下??

建议直接把这以下两句

ReportDocument optDoc=new ReportDocument();
optDoc.Load(Application.StartupPath + "CrystalReport1.rpt");

改成 -->

CrystalReport1 optDoc = new CrystalReport1();
补充:.NET技术 ,  图表区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,