Ошибка печати The report has no tables

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

ufobject
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 23.11.2006 (Чт) 16:42

Ошибка печати The report has no tables

Сообщение ufobject » 08.01.2007 (Пн) 23:46

Привет народ!
Помогите плиз баг выявить. Есть у меня следующий код

---------------------------------------------
Dim conn As New MySql.Data.MySqlClient.MySqlConnection
Dim scommand As New MySql.Data.MySqlClient.MySqlCommand
Dim adapter As New MySql.Data.MySqlClient.MySqlDataAdapter
Dim number As Integer
Dim myData As New DataSet
Dim cr As New CrystalReport1
Dim sql As String = "select * from accountant;"

Try
conn.ConnectionString = myConnectionString
conn.Open()
adapter.SelectCommand() = New MySql.Data.MySqlClient.MySqlCommand(sql, conn)
number = adapter.Fill(myData)
MessageBox.Show(number)

cr.SetDataSource(myData)
CrystalReportViewer2.ReportSource = cr
conn.Close()

Catch ex As MySql.Data.MySqlClient.MySqlException
MessageBox.Show(ex.Message)
End Try

---------------------------------
CrystalReport добавлен в проект с настройками по дефолту...
DataSet заполняется нормально, но как только доходит до кода "cr.SetDataSource(myData)" вылетает ошибка "The report has no tables". Не могу понять, что за tables ему нужны?? ОБъясните пожалуйста кто нибудь...

VB.NET 2005

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 09.01.2007 (Вт) 11:31

А что содержится в DataSet? И чего ждет отчет? Возможно, что несовпадение имени таблицы в DataSet с именем таблицы-источника для отчета.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

ufobject
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 23.11.2006 (Чт) 16:42

Сообщение ufobject » 09.01.2007 (Вт) 19:47

Спасибо! Я уже разобрался. Действитедльно, я не указал имя таблицы.
Если кому интересно, вот код:
------------------------------------------------------------------------------
Dim conn As New MySql.Data.MySqlClient.MySqlConnection
Dim scommand As New MySql.Data.MySqlClient.MySqlCommand
Dim adapter As New MySql.Data.MySqlClient.MySqlDataAdapter
Dim number As Integer
Dim myData As New DataSet1
Dim cr As New Customer
Dim sql As String = "select * from accountant where accountid='4';"

Try
conn.ConnectionString = myConnectionString
conn.Open()
adapter.SelectCommand() = New MySql.Data.MySqlClient.MySqlCommand(sql, conn)
number = adapter.Fill(myData.accountant_table)
MessageBox.Show(number)
cr.SetDataSource(myData)
form3.CrystalReportViewer2.ReportSource = cr

conn.Close()

Catch ex As MySql.Data.MySqlClient.MySqlException
MessageBox.Show(ex.Message)
End Try
------------------------------------------------------------------------
Ошибка была в этой строке:
number = adapter.Fill(myData)
надо было указать не просто myData а myData.accountant_table

myData - компонент DataSet созданный предварительно с полями именя которых совпадали с именами полей CrystalReport.
Сам CrystalReport связан с DataSet1
Всем спасибо! :)


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

    TopList