winform 水晶报表 每次都要输入数据库密码

2024-12-15 19:35:43
推荐回答(2个)
回答1:

据那是.net平台为了体现你编辑的报表样式而给你的预览,具体数据是根据你用报表专家选择的数据库中的数据而显示的,你可以这样理解。
1.你把你的预览和将来的数据要分开考虑,因为在水晶报表里主要编辑的是格式而不是数据,也就是说,你可以在水晶报表里指定格式,同时为每个将来显示数据的部分指定字段名,具体的数据源,你可以先放一边。你可以利用自己建立的,这里关键的是你要把格式和数据源的字段名弄清楚了。
2.如果你设定好了报表格式后,你可以添加一个新窗体,在里面放置一个crystalreportview控件,这个是专门用来预览水晶报表用的。
假设该预览用新窗体名称为ReportView,crystalreportview类型控件名为 CryView
主窗体名称为MainForm,打印按钮名称为 btn_Print
水晶报表名称为 CryReport.rpt
则点击打印按钮后,调用ReportView窗体,代码如下
ReportView myRp= newReportView(ReportSqlStr);
myRp.ShowDialog();
上面的代入参数ReportSqlStr是你检索数据所用的sql语句
在ReportView的load事件里写上
...
ds = myConn.GetData("tmpTable", tmpSql);
CryReport myrpt = new CryReport();
myrpt.SetDataSource(ds);
CryView.ReportSource = myrpt;
CryView.RefreshReport();

以上tmpSql是从上一个窗体传过来的sql语句,ds是一个dataset
myconn是一个对象,执行tmpsql语谈姿句返回dataset,你也可以自己写。
tmpTable是一个自定义的ds里面的表名,
注意,tmptable里面的字段名必须包含报表里编辑时的所有的字段名,否则就液神没有数据显示,如果报表编辑时在某个位置指定了A字段,而在tmptable里没有A字段,则报表就那块含埋绝地方就会空白。
具体打印和格式在CryView控件里都有,不需要另外写代码。

回答2:

调试?你可以试试在代码里做登陆那一顷裂步。
顺便态游问雀闭闭一下。你这个是啥数据库??连接字符串写在哪里?