locked
[Tanya] Binding Data dari database Ke Crystal report dengan Linq RRS feed

  • Pertanyaan

  • selamt sore master sekalian,,,
    saya mau nanya nih,, bagaimana cara untuk binding data ke dalam Crystal Report dengan menggunakan Linq.??

    saya menggunakan vb.net 2008 dan Database SQL Server 2008.

    sebelumnya saya sudah mencoba dengan menggunakan code seperti ini :

    1. code untuk menampilkan data ke dalam Crystal Report. :

    Private Sub DaftarStudioWithInstrumentToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DaftarStudioWithInstrumentToolStripMenuItem.Click Dim fkt As New Qstuido Dim LP = (From p In SQL.SelectAllQstudio Select p).ToList(0) Me.Cursor = Cursors.WaitCursor Dim reportName As String = ReportFolder & "\RPT_DaftarInstrument.rpt" If My.Computer.FileSystem.FileExists(reportName) = False Then MsgBox("Laporan tidak ditemukan", MsgBoxStyle.Critical, MessageboxTitle) Exit Sub End If Using Frm As New ReportForm Using Crep As New ReportDocument Crep.Load(reportName, CrystalDecisions.Shared.OpenReportMethod.OpenReportByDefault) SetPaperSize(Crep) Crep.SetDataSource(LP) With Frm.CrystalReportViewer1 .RefreshReport() .ReportSource = Crep End With Frm.ShowDialog() End Using End Using Me.Cursor = Cursors.Default End Sub

    2. Fungsi untuk mengambil data dari table :

        Public Shared Function SelectAllQstudio() As List(Of Qstuido)
            Dim AllData As List(Of Qstuido) = Nothing
            Using dc As New RedRockStudioDataContext(GlobalModule.ConnectionString)
                dc.ObjectTrackingEnabled = False
                AllData = dc.Qstudios.ToList()
                dc.Dispose()
            End Using
            Return AllData
        End Function

    3. ini untuk code pada Class Qstudio, yang di letak dari File DataClassess.dbml yang bernama : RedRockStudioDataContext.dbml

    <Table(Name:="dbo.Qstudio")> _
    Partial Public Class Qstuido
        Implements System.ComponentModel.INotifyPropertyChanging, System.ComponentModel.INotifyPropertyChanged
    
        Private Shared emptyChangingEventArgs As PropertyChangingEventArgs = New PropertyChangingEventArgs(String.Empty)
    
        Private _StudioNo As Integer
        Private _StudioName As String
        Private _instrumentID As String
        Private _Nama As String
        Private _Merek As String
        Private _Jumlah As System.Nullable(Of Integer)
    
    #Region "Extensibility Method Definitions"
        Partial Private Sub OnLoaded()
        End Sub
        Partial Private Sub OnValidate(ByVal action As System.Data.Linq.ChangeAction)
        End Sub
        Partial Private Sub OnCreated()
        End Sub
        Partial Private Sub OnstudioNoChanging(ByVal value As Integer)
        End Sub
        Partial Private Sub OnstudioNoChanged()
        End Sub
        Partial Private Sub OnStudioNameChanging(ByVal value As String)
        End Sub
        Partial Private Sub OnStudioNameChanged()
        End Sub
        Partial Private Sub OninstrumentIDChanging(ByVal value As String)
        End Sub
        Partial Private Sub OninstrumentIDChanged()
        End Sub
        Partial Private Sub OnNamaChanging(ByVal value As String)
        End Sub
        Partial Private Sub OnNamaChanged()
        End Sub
        Partial Private Sub OnMerekChanging(ByVal value As String)
        End Sub
        Partial Private Sub OnMerekChanged()
        End Sub
        Partial Private Sub OnJumlahChanging(ByVal value As System.Nullable(Of Integer))
        End Sub
        Partial Private Sub OnJumlahChanged()
        End Sub
    #End Region
    
        Public Sub New()
            MyBase.New()
            OnCreated()
        End Sub
    
        <Column(Storage:="_StudioNo", DbType:="Int NOT NULL")> _
     Public Property StudioNo() As Integer
            Get
                Return Me._StudioNo
            End Get
            Set(ByVal value As Integer)
                If ((Me._StudioNo = value) _
                   = False) Then
                    Me.OnstudioNoChanging(value)
                    Me.SendPropertyChanging()
                    Me._StudioNo = value
                    Me.SendPropertyChanged("StudioNo")
                    Me.OnstudioNoChanged()
                End If
            End Set
        End Property
    
        <Column(Storage:="_StudioName", DbType:="VarChar(500) NOT NULL")> _
        Public Property StudioName() As String
            Get
                Return Me._StudioName
            End Get
            Set(ByVal value As String)
                If (String.Equals(Me._StudioName, value) = False) Then
                    Me.OnStudioNameChanging(value)
                    Me.SendPropertyChanging()
                    Me._StudioName = value
                    Me.SendPropertyChanged("StudioName")
                    Me.OnStudioNameChanged()
                End If
            End Set
        End Property
    
        <Column(Storage:="_instrumentID", DbType:="varchar(50) NOT NULL")> _
        Public Property instrumentID() As String
            Get
                Return Me._instrumentID
            End Get
            Set(ByVal value As String)
                If ((Me._instrumentID = value) _
                   = False) Then
                    Me.OninstrumentIDChanging(value)
                    Me.SendPropertyChanging()
                    Me._instrumentID = value
                    Me.SendPropertyChanged("InstrumentID")
                    Me.OninstrumentIDChanged()
                End If
            End Set
        End Property
    
        <Column(Storage:="_Nama", DbType:="VarChar(500) NOT NULL")> _
        Public Property Nama() As String
            Get
                Return Me._Nama
            End Get
            Set(ByVal value As String)
                If (String.Equals(Me._Nama, value) = False) Then
                    Me.OnNamaChanging(value)
                    Me.SendPropertyChanging()
                    Me._Nama = value
                    Me.SendPropertyChanged("InstrumentName")
                    Me.OnNamaChanged()
                End If
            End Set
        End Property
    
        <Column(Storage:="_Merek", DbType:="VarChar(500) NOT NULL")> _
        Public Property Merek() As String
            Get
                Return Me._Merek
            End Get
            Set(ByVal value As String)
                If (String.Equals(Me._Merek, value) = False) Then
                    Me.OnMerekChanging(value)
                    Me.SendPropertyChanging()
                    Me._Merek = value
                    Me.SendPropertyChanged("Merek")
                    Me.OnMerekChanged()
                End If
            End Set
        End Property
    
        <Column(Storage:="_Jumlah", DbType:="Int  NOT NULL")> _
     Public Property Jumlah() As System.Nullable(Of Integer)
            Get
                Return Me._Jumlah
            End Get
            Set(ByVal value As System.Nullable(Of Integer))
                If (Me._Jumlah.Equals(value) = False) Then
                    Me.OnJumlahChanging(value)
                    Me.SendPropertyChanging()
                    Me._Jumlah = value
                    Me.SendPropertyChanged("Jumlah")
                    Me.OnJumlahChanged()
                End If
            End Set
        End Property
    
        Public Event PropertyChanging As PropertyChangingEventHandler Implements System.ComponentModel.INotifyPropertyChanging.PropertyChanging
    
        Public Event PropertyChanged As PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
    
        Protected Overridable Sub SendPropertyChanging()
            If ((Me.PropertyChangingEvent Is Nothing) _
               = False) Then
                RaiseEvent PropertyChanging(Me, emptyChangingEventArgs)
            End If
        End Sub
    
        Protected Overridable Sub SendPropertyChanged(ByVal propertyName As [String])
            If ((Me.PropertyChangedEvent Is Nothing) _
               = False) Then
                RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
            End If
        End Sub
    End Class

    SETELAH SAYA RUN PROGRAMNYA :

    MUNCUL PESAN ERROR SEPERTI GAMBAR INI (gambar 1.Sebelum Di Debug,  Gambar 2. Setelah di debug):


    untuk Data yang ada di dalam database seperti ini :


    kira kira itu dimana ya salahnya..????

    mohon bantuannya ya...

    terima kasih..

    by : Tafarie.


    Sabtu, 27 Juli 2013 10.21

Jawaban