Mathiudi Ответов: 1

Произошла ошибка при локальной обработке


Пожалуйста, я хочу помочь этой проблеме. После того как я установлю свой проект на клиентский компьютер, программа Microsoftreportviewer покажет ошибку. Он отлично работает при тестировании из visual studio, но после установки его на клиентский компьютер с помощью проекта установки он всегда показывает ошибку.

Белло-это мой код.

Imports MySql.Data.MySqlClient
Imports Microsoft.Reporting.WinForms

Public Class CarReportForm

    ' Connection string definition
    Private connString As String = _
         "Server=myserver;Port=3306;Database=hotelmanagementsystemn;Uid=root;Pwd=ben10@@;"

    Private Sub CarReportForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Try

            With Me.ReportViewer1.LocalReport

                ' Report path
                .ReportPath = Application.StartupPath & "\..\..\CarReport.rdlc"
                .DataSources.Clear()

            End With


            ' ----------------------------------------------------
            ' Datasource for the main report
            ' ----------------------------------------------------
            Dim SQL As String = "SELECT   Car_ID, Car_No, Car_Type, Full_Name, Room_No, Floor_No, Rent_Charge, Num_of_Cars, Total_Price, Date_Value FROM CarRent_T"

            Using da As New MySqlDataAdapter(SQL, connString)

                Using ds As New DataSet
                    da.Fill(ds, "viewcar")

                    ' You must use the same name as defined in the report Data Source Definition
                    Dim rptDataSource As New ReportDataSource("dsCar_viewcar", ds.Tables("viewcar"))
                    Me.ReportViewer1.LocalReport.DataSources.Add(rptDataSource)

                End Using

            End Using

            ' Refresh the report
            ReportViewer1.RefreshReport()

            ' Add the handler for the subreport
            AddHandler ReportViewer1.LocalReport.SubreportProcessing, AddressOf SubreportProcessingEvent

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

    End Sub

    Sub SubreportProcessingEvent(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)

        Try

            Dim SQL As String = "SELECT  Hotel_Name, Hotel_Address, Hotel_Phone, Email_Address FROM HotelProfile"
            Using da As New MySqlDataAdapter(SQL, connString)
                Using ds As New DataSet
                    da.Fill(ds, "viewhotelpro")
                    Dim rptDataSource As New ReportDataSource("dsCar_viewhotelpro", ds.Tables("viewhotelpro"))
                    e.DataSources.Add(rptDataSource)
                End Using
            End Using

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

    End Sub

End Class

Sergey Alexandrovich Kryukov

Пожалуйста, всегда форматируйте свой образец кода с помощью тегов "pre" так, как я только что сделал для вас (нажмите кнопку Улучшить вопрос видеть). Форматируйте код, чтобы сделать его более читабельным.
—СА

Sergey Alexandrovich Kryukov

Итак, какая ошибка? Почему вы называете это "локальной обработкой"? Что ты имеешь в виду? Весь ваш пример кода находится на стороне сервера.
—СА

1 Ответов

Рейтинг:
8

Sergey Alexandrovich Kryukov

Пожалуйста, смотрите мой комментарий к этому вопросу. До сих пор, она является неполной. Вы не объяснили шаги для воспроизведения, какое исключение вы получаете и т. д. Проблема может быть или не быть в коде, который вы показываете. Вам нужно использовать отладчик или протоколирование и изучить журналы.

Если ваше приложение действительно работало локально и не работало после развертывания, я вижу только два сомнительных фрагмента, которые могут иметь значение: строка подключения и путь "\..\..\CarReport.rdlc". Пожалуйста, проверьте, действительны ли они в другой среде хостинга. Вы уверены, что одна и та же или идентичная база данных доступна с размещенного сайта? Вы уверены, что файл RDLC существует? Веб-приложение может получить доступ только к путям в корневом каталоге, настроенном для вашего сайта.

Но опять же, проблема может быть в какой-то другой части кода. Вы просто не сделали надлежащих шагов для расследования проблемы.

—СА


Mathiudi

Когда я копирую проект на другой компьютер, на котором установлена visual studio, он работает нормально, но после развертывания его на клиентском компьютере он показывает ошибку microsoftreportviewer : определение отчета для локального отчета не указано

Sergey Alexandrovich Kryukov

Вам никогда не понадобится установленная Visual Studio для запуска чего-либо, даже для создания какого-либо проекта. Но вам нужно установить то, что требуется RDCL...
—СА

Mathiudi

Именно для этого он всегда показывает определение отчета 'C:\Program файлы\ICM\система управления отелем\..\..\CarReport.rdlc\ не были указаны. Не удалось найти файл. Любая идея, пожалуйста.

Sergey Alexandrovich Kryukov

Хорошо, вы обратили внимание на мою записку о дорожках? Находится ли он под корнем сайта? Есть ли у приложения Wen необходимые разрешения?
—СА

Mathiudi

Большое спасибо у меня есть и он прекрасно работает

Member 14793231

скажите мне, что именно вы сделали, у меня такой же prblm

Mathiudi

Большое спасибо у меня есть и он прекрасно работает

Sergey Alexandrovich Kryukov

Отличный. Мы всегда рады вам.
Удачи, звоните еще раз.
—СА