您的位置:首页 > 数据库

(百分之一可能).net 水晶报表弹出登陆数据库框解决方法

2010-03-10 15:25 281 查看
以前做好的报表,一直都没有更改过的。但是昨天上传到服务器上,在别人机器上运行的时候,就老是 弹出登陆数据库 框。

郁闷啊,我机器上可以的没错的,当时是在别人机器上,所以也没发很多时间去研究,以为是一些常规问题。

所以后面在网上忙活了一天后,找到相关的解决方法都不适用。

今天一大早就跑到一同事机器上自己亲自运行,仔细调试。终于找出原因:原来我设置的空数据源(null)的问题。

之前:

MMRP11 oCR = new MMRP11();
DataSet ds = new DataSet();
o_blks = EI.EITuxedo.CallService("mmrp11_inq", i_blks);
o_blks.WriteXmlFile("ds","TMMCR21","",1,"TMMCR21_DAY.xml");
ds.ReadXml(@"../EP/TMMCR21_DAY.xml");

if(ds.Tables.Count == 0)
{
oCR.SetDataSource(null);
crystalReportViewer1.ReportSource = oCR;
this.EFMsgInfo ="没查询到满足条件的记录!";
}
else
{
oCR.SetDataSource(ds);
crystalReportViewer1.ReportSource = oCR;
}


之后:

//判断调用是否正确
if (o_blks.sys_info.flag < 0)
{
this.EFMsgInfo ="查询失败 "+ o_blks.sys_info.msg;
return;
}
//返回查询结果
if (o_blks.blk_info[0].row > 0)  //查询到记录
{
o_blks.WriteXmlFile("ds","TMMCR21_DAY","",1,"TMMCR21_DAY.xml");
ds.ReadXml(@"../EP/TMMCR21_DAY.xml");
oCR.SetDataSource(ds);
crystalReportViewer1.ReportSource = oCR;
this.EFMsgInfo = "查询成功!" + o_blks.sys_info.msg;
}
else
{
this.EFMsgInfo ="没查询到满足条件的记录!";
}


不同的就是把

oCR.SetDataSource(null);
crystalReportViewer1.ReportSource = oCR;


删掉,然后我在service mmrp11_inq 设置了一条默认值,每次查询的时候,都是

执行这个IF里面的数据,所以也不担心查询的时候 没得报表的标题、表头什么的。

if (o_blks.blk_info[0].row > 0)  //查询到记录
{}


呵呵,希望帮到一些被同样问题困扰的朋友!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐