求高手指点!
我的在调试没有问题,运行的刚开始也没有问题,当我点上面的按钮的时候就提示我报表加载失败!请问高手这是为什么啊?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;
}
}
}
} --------------------编程问答--------------------
很可能这个报表路径不对,因Application.StartupPath指向的是EXE执行目录,你把RPT模板文件放在exe执行目录下??
建议直接把这以下两句
ReportDocument optDoc=new ReportDocument();
optDoc.Load(Application.StartupPath + "CrystalReport1.rpt");
改成 -->
CrystalReport1 optDoc = new CrystalReport1();
补充:.NET技术 , 图表区