水晶报表:预览的时候为什么总是让我登陆数据库?

wangxl430 2005-02-05 09:35:35
winform程序
我是这样做的报表:(参考资料:章立民,用实例学Crystal Report)
一、首先在解决方案中添加新项,建立一个数据集,使用集成方式连接到sql server,把存储过程拖到
数据集中(一个表),给了名字(),存盘。
二、利用该数据集建立一个标准报表(使用的是专家,基本默认)
三、添加新项,form,加一个水晶报表的预览控件。在form的load事件处理程序中写:
首先是利用sqlcommand、SqlDataAdapter填充上面那个数据集的一个实例,代码略。
然后:
MyDoc= new CrystalDecisions.CrystalReports.Engine.ReportDocument();
MyDoc.Load(Path.Combine(Directory.GetCurrentDirectory(),@"PrintGrade.rpt"));
GradeView.ReportSource=MyDoc;
运行以后结果一预览就让我登陆数据库,还是sqlserver方式,要求用户名密码。
我在这个预览窗口加了个datagrid看了一下,数据已经得到了。
第一次使用水晶报表,实在搞不懂。
帮忙指点一下,谢谢。
...全文
604 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mltx 2005-02-06
  • 打赏
  • 举报
回复
这不是C#的地方吗?怎么没有C#的解决方法呀,都是VB的,C#该怎么办呀?
xiongchen 2005-02-05
  • 打赏
  • 举报
回复
呵,呵!
wangxl430 2005-02-05
  • 打赏
  • 举报
回复
首先谢谢xiongchen(二氧化鬼),看了你给的连接就知道了。
5555555,我看书都看花了眼了,人家书上有一句:
MyReportDoc.SetDataSource(ds)
我没看见:(
xiongchen 2005-02-05
  • 打赏
  • 举报
回复
http://search.csdn.net/Expert/topic/1076/1076976.xml?temp=.5222895
这篇文章对你应该也有帮助的!
xiongchen 2005-02-05
  • 打赏
  • 举报
回复
http://search.csdn.net/Expert/topic/1108/1108303.xml?temp=.78883看看吧
xiongchen 2005-02-05
  • 打赏
  • 举报
回复
在VB.NET中,使用Crystal Report制作报表时,碰到出现Database Login数据库登录窗口,是由于报表访问的后台数据库MS SQL Server需要提供登录信息。
如果您是通过OLE DB(ADO)的方式来访问后台数据库,则报表文件自身去提取数据,不需要编写代码。但如果后台数据库需要认证(如MS SQL Server),则应提供登录信息。如下提供一段示例代码供您参考:
(Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared)
Dim crReport As New CrystalReport1()
Dim repDB As Database = crReport.Database
Dim repTbls As Tables = repDB.Tables
Dim repTbl As Table

repTbl = repTbls(0)
Dim logonInfo As TableLogOnInfo = repTbl.LogOnInfo
logonInfo.ConnectionInfo.Password = "password"
repTbl.ApplyLogOnInfo(logonInfo)
CrystalReportViewer1.ReportSource = crReport

如果您是通过DataSet的方式来访问后台数据库,则需要您手动编码来提取数据,填充DataSet,并传递到报表文件中,当然需提供数据库登录信息,建立连接。如下提供一段示例代码供您参考:
Private Sub BindReport()
Dim myConnection As New SqlClient.SqlConnection()
myConnection.ConnectionString = "Server=localhost;database=pubs;Trusted_Connection=yes"

Dim myCommand As New SqlClient.SqlCommand()
myCommand.Connection = myConnection
myCommand.CommandText = "Select * from Stores"
myCommand.CommandType = CommandType.Text

Dim myDA As New SqlClient.SqlDataAdapter()
myDA.SelectCommand = myCommand

Dim myDS As New Dataset1()
myDA.Fill(myDS, "Stores")
Dim oRpt As New CrystalReport1()
oRpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = oRpt
End Sub
请根据您系统的实际情况,将提供的代码进行修改。希望以上答复给您带来帮助。
wangxl430 2005-02-05
  • 打赏
  • 举报
回复
明明我已经连接到数据库并且得到了数据(可用datagrid显示),还是让我登陆数据库,
而且我还登陆不进去,结果报表是空的。
wangxl430 2005-02-05
  • 打赏
  • 举报
回复
没错误,就是出现一个登陆对话框,要求我输入服务器名、数据库名、用户名、密码。
palmkey 2005-02-05
  • 打赏
  • 举报
回复
提示什么错误
terryshi 2005-02-05
  • 打赏
  • 举报
回复
关注~~不知道原因
wangxl430 2005-02-05
  • 打赏
  • 举报
回复
修改数据库身份验证方式为"仅Windows"也不行。
wangxl430 2005-02-05
  • 打赏
  • 举报
回复
补充说明:
即使我输入了服务器、数据库、用户名(SA)、密码也登陆不进去。
@_@
palmkey 2005-02-05
  • 打赏
  • 举报
回复
修改数据库身份验证方式为"仅Windows"试试
daview 2005-02-05
  • 打赏
  • 举报
回复
up

110,555

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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