TO:wtadminxjeri(taotao_0990) Dim oRpt As New CrystalReport3() oRpt.SetDataSource(dstRpt)
你的数据集呢? string strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD="; CrystalReport1 oCR = new CrystalReport1(); Dataset1 ds = new Dataset1(); SqlConnection MyConn = new SqlConnection(strProvider); MyConn.Open(); string strSel = "Select * from Stores"; SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn); MyAdapter.Fill(ds,"stores"); oCR.SetDataSource(ds); this.CrystalReportViewer1.ReportSource = oCR;注:Dataset1是设计水晶报表文件的数据集
Dim dstRpt As New DataSet() Dim dadReport As New OleDbDataAdapter("select blno,jobno from op_order where rownum<3", conDb) dadReport.Fill(dstRpt, "aa")可以告诉我你的QQ吗?我的121012216
Dataset1 ds = new Dataset1(); 我用的是vb.net,怎么只有Dataset没有Dataset1?
你做报表时,用到的数据表,现在的数据填充名字要跟数据表名一致,不然是空数据,出现你问的问题 Sub BindCryRpt() Dim oRpt As New CrystalReport3() Dim dstRpt As New DataSet() Dim conDb As New OleDbConnection("Provider=MSDAORA.1;Persist Security Info=False;Password=aaa;User ID=bbb;") '根据实际不同 conDb.Open() Dim dadReport As New OleDbDataAdapter("select blno,jobno from op_order where rownum<3", conDb) dadReport.Fill(dstRpt, "aa") oRpt.SetDataSource(dstRpt) crv_bb.ReportSource = oRpt conDb.Close() End Sub 即是dadReport.Fill(dstRpt, "aa")这句中"aa"要跟做报表时的数据表名字一样,我的建议是你最好建个数据集,然后填充这个数据集,当然要把报表的数据改为你建的数据集,这样就不会出错了
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: 此方法调用是 Web 窗体设计器所必需的 '不要使用代码编辑器修改它。 InitializeComponent() 'crReportDocument = New ChartReport() 'crReportDocument.SetDataSource(GetDS()) CrystalReportViewer1.ReportSource = crReportDocument CrystalReportViewer1.DisplayGroupTree = False End Sub '报表数据源准备(从XSD文件中提取数据库结构) Public Function GetDS() As Preview2 Me.SqlCon = New System.Data.SqlClient.SqlConnection() Me.SqlDa = New System.Data.SqlClient.SqlDataAdapter() Me.SqlSeCmd = New System.Data.SqlClient.SqlCommand() Me.DSet = New FWeb.Preview2() CType(Me.DSet, System.ComponentModel.ISupportInitialize).BeginInit() Me.SqlDa.SelectCommand = Me.SqlSeCmd Me.SqlSeCmd.Connection = Me.SqlCon Me.SqlCon.ConnectionString = Application("cnstr") Me.DSet.DataSetName = "cc" Me.DSet.Locale = New System.Globalization.CultureInfo("zh-CN") Me.DSet.Namespace = "http://www.tempuri.org/IntegList.xsd" CType(Me.DSet, System.ComponentModel.ISupportInitialize).EndInit() Me.SqlSeCmd.CommandText = "select blno,jobno from op_order where rownum<3" SqlDa.Fill(DSet, "aa") Return DSet End Function 注意这样做,必须要把ChartReport的报表源改为数据集Preview2,数据集中的表名假设为"TestTable",那么填充数据应为 SqlDa.Fill(DSet, "TestTable")
水晶报表的数据集不能是动态创建,如dim ds as new dataset() 数据集就象一个空架子,添加新项,选数据集
Dim mysqlconn1 As New SqlClient.SqlConnection("server=" & server & ";uid=" & user & ";pwd=" & password & ";database=" & a & "") mysqlconn1.Open() '取出当前学期代码 Dim tem_dapter As New SqlDataAdapter(" select * from xqb ", mysqlconn1) dataset11.Clear() tem_dapter.Fill(dataset11, "xqb") dqxq = dataset11.Tables("xqb").Rows(dataset11.Tables("xqb").Rows.Count - 1).Item("学期代码")
dataset3.Clear() Dim bmb1 As New SqlDataAdapter("SELECT 班级 from bmbj WHERE (班主任工号姓名= '" & ghxm & "')", mysqlconn1) bmb1.Fill(dataset3, "bmbj") Dim bj_name As String = dataset3.Tables("bmbj").Rows(0).Item(0) Dim bj_a As String = bj_name.Substring(3, 1) Dim bj_b As String = dqxq.Substring(1, 1) Dim bj_c As String = dqxq.Substring(4, 1) Dim py_num As String = (bj_b - bj_a) * 2 + bj_c dataset3.Clear() Dim bmb2 As New SqlDataAdapter("SELECT * from bjkc02032 WHERE (班级名= '" & bj_name & "')", mysqlconn1) bmb2.Fill(dataset3, "bjkc02032") Dim selec, s1, st1, st2 As String Dim r(30) As String Dim k, k1 As Single k = 0 selec = "" s1 = "" For i = 1 To dataset3.Tables("bjkc02032").Columns.Count - 1 If dataset3.Tables("bjkc02032").Rows(0).Item(i) Is DBNull.Value Then Else 'i是表示第几门课 r(i) = Trim(dataset3.Tables("bjkc02032").Rows(0).Item(i)) k = k + 1 selec = "b." & "平时" & i.ToString & " ," & _ "b." & "期中标准" & i.ToString & " ," & _ "b." & "期末标准" & i.ToString & " ," & _ "b." & "学期总评" & i.ToString s1 = s1 & selec & "," End If Next s1 = s1.Substring(0, Len(s1) - 1) selec = "select a.学号,a.专业,a.性质,a.姓名,a.所属部门,a.班级,a.评语" & py_num & "," & s1 & " from xsqkb a LEFT OUTER JOIN xscjb02032 b ON a.学号 = b.学号 where a.班级 ='" & bj_name & "' ORDER BY a.学号" Dim temp1 As New SqlDataAdapter(selec, mysqlconn1) temp1.Fill(dataset3, "xsqkb") For i = 1 To k Dim tt As String tt = "课程" & i dataset3.Tables("xsqkb").Columns.Add(tt) Dim j As Integer For j = 0 To dataset3.Tables("xsqkb").Rows.Count - 1 dataset3.Tables("xsqkb").Rows(j).Item(tt) = r(i) Next Next 'DataGrid1.DataSource = dataset3.Tables("xsqkb") '致此每个班级的每个学生的所有课目和相应评语都列出来了 Dim oRpt As New CrystalReport1() ' This is the Crystal Report file created at Design Time oRpt.SetDataSource(dataset3.Tables("xsqkb")) ' Set the SetDataSource property of the Report to the Dataset CrystalReportViewer1.ReportSource = oRpt ' Set the Crystal Report Viewer's property to the oRpt Report object that we created mysqlconn1.Close()注:dataset1是添加新项,选数据集
Dim oRpt As New CrystalReport3() oRpt.SetDataSource(dstRpt)
string strProvider = "Server=(local);DataBase=pubs;UID=sa;PWD=";
CrystalReport1 oCR = new CrystalReport1();
Dataset1 ds = new Dataset1();
SqlConnection MyConn = new SqlConnection(strProvider);
MyConn.Open();
string strSel = "Select * from Stores";
SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
MyAdapter.Fill(ds,"stores");
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;注:Dataset1是设计水晶报表文件的数据集
Dim dadReport As New OleDbDataAdapter("select blno,jobno from op_order where rownum<3", conDb)
dadReport.Fill(dstRpt, "aa")可以告诉我你的QQ吗?我的121012216
我用的是vb.net,怎么只有Dataset没有Dataset1?
难道没有数据集
我的方法是自己验证过的,
绝对可行!
对了我的qq丢了
单位不让上qq
从工具箱里拖进来的
这个填充名"aa"应该跟水晶报表的数据表或视图同名
不明白,可以说清楚一点吗?
.rpt是空白的报表,没指定读哪个表,我想把SQL传进去,贴在最前面的函数运行结果
只显示水晶报表的工具条,都没数据:(
Sub BindCryRpt()
Dim oRpt As New CrystalReport3()
Dim dstRpt As New DataSet()
Dim conDb As New OleDbConnection("Provider=MSDAORA.1;Persist Security Info=False;Password=aaa;User ID=bbb;") '根据实际不同
conDb.Open()
Dim dadReport As New OleDbDataAdapter("select blno,jobno from op_order where rownum<3", conDb)
dadReport.Fill(dstRpt, "aa")
oRpt.SetDataSource(dstRpt)
crv_bb.ReportSource = oRpt
conDb.Close()
End Sub
即是dadReport.Fill(dstRpt, "aa")这句中"aa"要跟做报表时的数据表名字一样,我的建议是你最好建个数据集,然后填充这个数据集,当然要把报表的数据改为你建的数据集,这样就不会出错了
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent() 'crReportDocument = New ChartReport()
'crReportDocument.SetDataSource(GetDS())
CrystalReportViewer1.ReportSource = crReportDocument
CrystalReportViewer1.DisplayGroupTree = False End Sub '报表数据源准备(从XSD文件中提取数据库结构)
Public Function GetDS() As Preview2
Me.SqlCon = New System.Data.SqlClient.SqlConnection()
Me.SqlDa = New System.Data.SqlClient.SqlDataAdapter()
Me.SqlSeCmd = New System.Data.SqlClient.SqlCommand()
Me.DSet = New FWeb.Preview2()
CType(Me.DSet, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SqlDa.SelectCommand = Me.SqlSeCmd
Me.SqlSeCmd.Connection = Me.SqlCon
Me.SqlCon.ConnectionString = Application("cnstr")
Me.DSet.DataSetName = "cc"
Me.DSet.Locale = New System.Globalization.CultureInfo("zh-CN")
Me.DSet.Namespace = "http://www.tempuri.org/IntegList.xsd"
CType(Me.DSet, System.ComponentModel.ISupportInitialize).EndInit()
Me.SqlSeCmd.CommandText = "select blno,jobno from op_order where rownum<3"
SqlDa.Fill(DSet, "aa")
Return DSet
End Function
注意这样做,必须要把ChartReport的报表源改为数据集Preview2,数据集中的表名假设为"TestTable",那么填充数据应为
SqlDa.Fill(DSet, "TestTable")
数据集就象一个空架子,添加新项,选数据集
mysqlconn1.Open()
'取出当前学期代码
Dim tem_dapter As New SqlDataAdapter(" select * from xqb ", mysqlconn1)
dataset11.Clear()
tem_dapter.Fill(dataset11, "xqb")
dqxq = dataset11.Tables("xqb").Rows(dataset11.Tables("xqb").Rows.Count - 1).Item("学期代码")
dataset3.Clear()
Dim bmb1 As New SqlDataAdapter("SELECT 班级 from bmbj WHERE (班主任工号姓名= '" & ghxm & "')", mysqlconn1)
bmb1.Fill(dataset3, "bmbj") Dim bj_name As String = dataset3.Tables("bmbj").Rows(0).Item(0)
Dim bj_a As String = bj_name.Substring(3, 1)
Dim bj_b As String = dqxq.Substring(1, 1)
Dim bj_c As String = dqxq.Substring(4, 1)
Dim py_num As String = (bj_b - bj_a) * 2 + bj_c
dataset3.Clear()
Dim bmb2 As New SqlDataAdapter("SELECT * from bjkc02032 WHERE (班级名= '" & bj_name & "')", mysqlconn1)
bmb2.Fill(dataset3, "bjkc02032") Dim selec, s1, st1, st2 As String
Dim r(30) As String
Dim k, k1 As Single
k = 0
selec = ""
s1 = ""
For i = 1 To dataset3.Tables("bjkc02032").Columns.Count - 1
If dataset3.Tables("bjkc02032").Rows(0).Item(i) Is DBNull.Value Then
Else
'i是表示第几门课
r(i) = Trim(dataset3.Tables("bjkc02032").Rows(0).Item(i))
k = k + 1
selec = "b." & "平时" & i.ToString & " ," & _
"b." & "期中标准" & i.ToString & " ," & _
"b." & "期末标准" & i.ToString & " ," & _
"b." & "学期总评" & i.ToString
s1 = s1 & selec & ","
End If
Next
s1 = s1.Substring(0, Len(s1) - 1)
selec = "select a.学号,a.专业,a.性质,a.姓名,a.所属部门,a.班级,a.评语" & py_num & "," & s1 & " from xsqkb a LEFT OUTER JOIN xscjb02032 b ON a.学号 = b.学号 where a.班级 ='" & bj_name & "' ORDER BY a.学号" Dim temp1 As New SqlDataAdapter(selec, mysqlconn1)
temp1.Fill(dataset3, "xsqkb")
For i = 1 To k
Dim tt As String
tt = "课程" & i
dataset3.Tables("xsqkb").Columns.Add(tt)
Dim j As Integer
For j = 0 To dataset3.Tables("xsqkb").Rows.Count - 1
dataset3.Tables("xsqkb").Rows(j).Item(tt) = r(i)
Next
Next
'DataGrid1.DataSource = dataset3.Tables("xsqkb")
'致此每个班级的每个学生的所有课目和相应评语都列出来了
Dim oRpt As New CrystalReport1()
' This is the Crystal Report file created at Design Time
oRpt.SetDataSource(dataset3.Tables("xsqkb"))
' Set the SetDataSource property of the Report to the Dataset
CrystalReportViewer1.ReportSource = oRpt
' Set the Crystal Report Viewer's property to the oRpt Report object that we created mysqlconn1.Close()注:dataset1是添加新项,选数据集