水晶报表连接Oracle做数据报表笔记
首先,新建一个水晶报表的文件,这个时候要给这个报表文件绑定一个oracle数据源,
选择右侧菜单的这个东西,选择“数据库专家”,打开之后是这么一个界面:
选择建立新连接:
这个地方最关键,也是我为什么要写这篇日志的原因。这里很坑,就是这里的服务一定要是Oracle安装程序里的tnsnames.ora文件配置的节点的名称,切记!
例如这个:
ALi=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=192.168.1.1)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=mir)
)
)
这里的服务就要填写ALi。然后再输入相应的用户名和密码就OK了。
第二章:参数
首先,水晶报表里面和RDLC一样有参数字段,然后水晶报表的数据源里面写自定义SQL的时候也是可以定义参数字段的。OK,那么问题来了,我们从.Net程序里传入的参数字段是什么呢?
首先,你在数据源自定义的sql里面新增的参数,会自动在报表参数字段中相应的新增一个参数。然后你也可以自己在参数字段中新增参数。跟数据源绑定的参数最下角是有一个小标识的:
最后,上完整的.Net端的代码:
//实例化报表
ReportDocument rpt = new ReportDocument();
rpt.Load(Application.StartupPath + "\\Pan.rpt"); //注册数据源,如果不注册则打开报表的时候会提示登录
TableLogOnInfo log = new TableLogOnInfo();
log.ConnectionInfo.ServerName = "";
log.ConnectionInfo.DatabaseName = "orcl";
log.ConnectionInfo.UserID = "UserId";
log.ConnectionInfo.Password = "XXXX";
rpt.Database.Tables[].ApplyLogOnInfo(log); //为报表控件绑定报表
this.crystalReportViewer1.ReportSource = rpt; //设置参数,这里需要三个变量,对应的报表中每一个参数都可以传入多个值
ParameterFields t = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
ParameterValues paramValues = new ParameterValues();
paramField.ParameterFieldName = "ProductId";
paramDiscreteValue.Value = "PA01010020";
paramValues.Add(paramDiscreteValue);
paramField.CurrentValues = paramValues;
t.Add(paramField);
this.crystalReportViewer1.ParameterFieldInfo = t;
水晶报表连接Oracle做数据报表笔记的更多相关文章
- 在VS2012后的版本中做数据报表时,提示尚未指定报表“Report1”的报表定义
有一群的朋友在用VS2012做数据报表时,老是提示 本地报表处理期间出错. 尚未指定报表“Report1”的报表定义 未将对象引用设置到对象的实例. 我看了一下,步骤没错,我用VS2010做了一下,一 ...
- MS SQL到Oracle的数据迁移笔记
MS SQL到Oracle的数据迁移笔记 一.任务背景 旧系统使用MS SQL Server数据库,新系统使用Oracle数据库,现在需要将旧系统中的数据迁移到新系统中,旧数据按照约定的规则转换后,能 ...
- SSRS连接ORACLE数据库制作报表
SSRS报表基于ORACLE数据库做报表示例. 开发环境:VS2010 SQL SERVER 数据库:SQL SERVER 2012 PS:数据库连接部分可能有还有个问题就是ORACLE数据源这一部分 ...
- python连接oracle导出数据文件
python连接oracle,感觉table_list文件内的表名,来卸载数据文件 主脚本: import os import logging import sys import configpars ...
- c# 连接oracle 读取数据
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- linux shell脚本连接oracle查询数据插入文件和日志文件中
#!/bin/sh sqlplus "用户名/密码@数据库"<<EOF 或者只有一个库的 :sqlplus "用户名/密码"<<EOF ...
- EF6 连接Oracle 迁移数据错误解决方法
环境:vs2015 + EF6 +ODP 数据库Oracle 11G add-migratioin 正常,但在update-database 时报如下错误: System.Runtime.Serial ...
- 连接oracle读取数据
没怎么用过oracle,而且是在地税内网内部估计是防火墙的原因虚拟机里也连不上oracle,刚开始费了很多周折查找问题,现在又放弃使用直连数据库了,记下来以备后用吧 public class Load ...
- 【转】mybatis连接Oracle做增删改查
原文地址:http://blog.csdn.net/liumengcheng/article/details/34422475 入门请看http://blog.csdn.NET/liumengchen ...
随机推荐
- Debian 安装下载工具软件
Debian 安装下载工具软件 1.下载BT种子Torrent文件 Linux下载种子文件肯定不能使用迅雷了,推荐一款叫做qBittorrent的P2P下载软件,目前在Ubuntu中使用很广泛,同样D ...
- (基础篇) php中0与空 Null false的区别
<?php $test=0; if($test==''){ echo '<br />在php中,0即为空'; //被输出 } if($test===''){ echo '<br ...
- 目标跟踪之Lukas-Kanade光流法
转载自:http://blog.csdn.net/u014568921/article/details/46638557 光流是图像亮度的运动信息描述.光流法计算最初是由Horn和Schunck于19 ...
- 310. Minimum Height Trees
For a undirected graph with tree characteristics, we can choose any node as the root. The result gra ...
- web标准的可用性和可访问性
在Web前端开发界,有三个词经常被提及:可用性(Usability).可访问性(Accessibility)和可维护性(Maintainability). 可用性指的是:产品是否容易上手,用户能否完成 ...
- android中的空格及汉字的宽度
在Android布局中进行使用到空格,以便实现文字的对齐.那么在Android中如何表示一个空格呢? 空格: 窄空格: 一个汉字宽度的空格: [用两个空格( )占一个汉字的宽度时,两个空格比 ...
- System program problem detected 解决
每次开机都出现:System program problem detected 管理员权限打开:/etc/default/apport su root vim /etc/default/app ...
- java窗口添加背景
1.import javax.swing.ImageIcon; 2.import javax.swing.JFrame; 3.import javax.swing.JLabel; 4.import j ...
- 黑马程序员——JAVA基础之抽象和接口 , 模版方法设计模式
------- android培训.java培训.期待与您交流! ---------- 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来. 例如:狼 ...
- 两篇很牛的vim使用技巧
读本文之前请注意: 1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率.部分技巧在vi上也可以使用,但是现在基本上都是用vim了. 2. 本文是整理和总结使用技巧,而非讲 ...