各位朋友,给我一点提示吧,已经是第二贴了!关于水晶报表,我已经搜过不少文章了,可...

qinamao 2003-06-13 05:44:23
出错信息如下:
“/jsj”应用程序中的服务器错误。
--------------------------------------------------------------------------------

文件 c:\inetpub\wwwroot\jsj\sbprint.rpt 内出错:无效表号。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: CrystalDecisions.CrystalReports.Engine.InvalidArgumentException: 文件 c:\inetpub\wwwroot\jsj\sbprint.rpt 内出错:无效表号。

源错误:


行 45: da.TableMappings.Add("cequips","cequips");
行 46: da.Fill(ds,"cequips");
行 47: cr.SetDataSource(ds.Tables[0]);
行 48: crpt.ReportSource=cr;
行 49:


源文件: c:\inetpub\wwwroot\jsj\print.aspx.cs 行: 47

cs源代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Runtime.InteropServices;

namespace jsj
{
public class print : System.Web.UI.Page
{
protected config con=new config();
protected System.Data.DataSet ds;
protected CrystalDecisions.Web.CrystalReportViewer crpt;
protected System.Data.SqlClient.SqlDataAdapter da;

private void Page_Load(object sender, System.EventArgs e)
{
string sqlstr=Session["sqlstr"].ToString();//sqlstr为select语句,没有问题
ReportDocument cr=new ReportDocument();
cr.Load("c:\\inetpub\\wwwroot\\jsj\\sbprint.rpt");
con.open();
da = new SqlDataAdapter(sqlstr,con);
da.TableMappings.Add("cequips","cequips");
da.Fill(ds,"cequips");
cr.SetDataSource(ds.Tables[0]);
crpt.ReportSource=cr;
crpt.DataBind();
con.Close();

}

.......
...全文
32 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ubc 2003-06-17
  • 打赏
  • 举报
回复
从“数据”工具栏添加dataset到报表显示页面,指定为dsall.xsd,ok!
qinamao 2003-06-16
  • 打赏
  • 举报
回复
以上我的问题其实就是进行如下处理:

1、通过连接查询获得SQL数据库相关数据;
2、置放在DataSet里;
3、调用水晶报表(线形或柱形模板),生成报表;

请问第2步如何实现,即将查询获得SQL数据库某表的部分字段的部分记录数据置放到已有的dataset中?
Jorcks2002 2003-06-14
  • 打赏
  • 举报
回复
看看
http://expert.csdn.net/Expert/topic/1900/1900717.xml?temp=.56802
Jorcks2002 2003-06-14
  • 打赏
  • 举报
回复
先建立一个DataSet1.xsd的数据集文件,把你要的表拖进去比如pubs.authors

protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
private Report1 Cry1=new Report1();

private void Page_Load(object sender, System.EventArgs e)
{
ReportBind();
}

private void ReportBind()
{
string strCon="server=localhost;database=pubs;uid=sa;pwd=";
SqlConnection Con=new SqlConnection(strCon);
DataSet1 ds=new DataSet1(); \\申明数据集
SqlDataAdapter ad=new SqlDataAdapter("select * from authors",Con);
ad.Fill(ds,"authors");
Con.Close();

string path1=Server.MapPath("\\WebApplication3");
string path2=path1+"\\Report1.rpt";

Cry1.SetDataSource(ds);
CrystalReportViewer1.ReportSource=crRepDocumnet;
}

qinamao 2003-06-14
  • 打赏
  • 举报
回复
to: terryxin(有聊的冬季)
存储过程怎么做?
asp_badboy 2003-06-13
  • 打赏
  • 举报
回复
行 45: da.TableMappings.Add("cequips","cequips");
行 46: da.Fill(ds,"cequips");
行 47: cr.SetDataSource(ds.Tables["cequips"]);
行 48: crpt.ReportSource=cr;
terryxin 2003-06-13
  • 打赏
  • 举报
回复
把你需要的数据放在一个试图中或者存储过程中,然后建立一个数据集,在去用这个建立报表就可以
qinamao 2003-06-13
  • 打赏
  • 举报
回复
我是动态查询数据库cequips表中的部分字段内容得到的记录集显示到水晶报表中,建立一个数据集文件怎么弄,好象不是很直观.能给点提示吗?
qinamao 2003-06-13
  • 打赏
  • 举报
回复
to: greystar(greystar)
我已经试过了,没用,同样
Fred_Mark 2003-06-13
  • 打赏
  • 举报
回复
up
greystar 2003-06-13
  • 打赏
  • 举报
回复
建一个数据集文件,试试
greystar 2003-06-13
  • 打赏
  • 举报
回复
//da.TableMappings.Add("cequips","cequips");去了这一行看一下呢
qinglws 2003-06-13
  • 打赏
  • 举报
回复
要把你的表从数据库资源管理中拖到DATASET中

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧