DataReader + Crystal Report + MS SQL

 

   需要建立 係 Project 既 Object
 
   建立 Crystal Report 文件 叫 "CrystalReport1.rpt"
   建立 DataSet 叫 "DataSet1.xsd"
 
   係 DataSet1 上 建立 DataTable
   係 DataTable 上 建立 Column 叫 "Staff Name"
   係 DataTable 上 建立 Column 叫 "Staff ID"
   (個Column 名係 Related 去D Code 既)
 
   係 "CrystalReport1.rpt" 上 連接 Data Source 為 "DataSet1.xsd"
   係 "CrystalReport1.rpt" 建立 Layout
 
 

 

   vb 文件上既 Source Code
 
   Imports System.Data.SqlClient
   Imports CrystalDecisions.CrystalReports.Engine
   Imports CrystalDecisions.Shared
   Imports System.Data
 
   Private Sub DataReader_CrystalReport()
 
      Dim connectionString1 As String = "Data Source=.\SqlExpress; Initial Catalog=Admin; Integrated Security=SSPI"
      Dim con1 As SqlConnection = New SqlConnection(connectionString1)
      con1.Open()
 
      Dim SqlString1 As String = "SELECT Staff_Name, Staff_Login FROM Staff"
 
      Dim cmd1 As SqlCommand = New SqlCommand(SqlString1, con1)
 
      Dim dr As SqlDataReader = cmd1.ExecuteReader()
 
      Dim ds As New DataSet1
      Dim DataTable1 As DataTable = ds.Tables.Add("Staff")
      DataTable1.Columns.Add("Staff Name", Type.GetType("System.String"))
      DataTable1.Columns.Add("Staff ID", Type.GetType("System.String"))
 
      Dim DataRow1 As DataRow
 
      If dr.HasRows Then
         While dr.Read
            DataRow1 = DataTable1.NewRow()
            DataRow1("Staff Name") = dr.Item(0).ToString.Trim
            DataRow1("Staff ID") = dr.Item(1).ToString.Trim
            DataTable1.Rows.Add(DataRow1)
         End While
      End If
 
      Dim objRpt As New CrystalReport1
      objRpt.SetDataSource(ds.Tables(1))
      CrystalReportViewer1.ReportSource = objRpt
      CrystalReportViewer1.Refresh()
 
   End Sub