Средство просмотра отчетов не принято enableDatabaseLogonPrompt, значение которого равно false

#vb.net #sql-server-2005 #ado.net #crystal-reports #dataset

#vb.net #sql-server-2005 #ado.net #crystal-отчеты #набор данных

Вопрос:

Я создал отчет. Я использовал ado.net подключение. Я создал dataset из add new project. Я настроил dataset и вызвал этот dataset из отчета. на данный момент все в порядке. И я написал это в code-behind.

 Dim Adp As New ClientDsTableAdapters.DataTable1TableAdapter
Dim Rpt As New Client

Rpt.Load(Server.MapPath(Client_FILE))
Rpt.SetDataSource(CType(Adp.GetData(), DataTable))

Client.EnableDatabaseLogonPrompt = False
Client.ReportSource = Rpt

Dim ConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo

ConnectionInfo.ServerName = "MyServer"
ConnectionInfo.DatabaseName = "MyDB"
ConnectionInfo.UserID = "MyUser"
ConnectionInfo.Password = "MyPassword"
ConnectionInfo.Type = CrystalDecisions.Shared.ConnectionInfoType.SQL
ConnectionInfo.AllowCustomConnection = True

For Each TableLogOnInfoVar As TableLogOnInfo In ClientReportViewer.LogOnInfo
    TableLogOnInfoVar.ConnectionInfo = ConnectionInfo
Next
  

И я установил EnableDatabaseLogonPrompt = «false» в средстве просмотра отчетов. Теперь первая страница отчета в порядке. Когда я перехожу на следующую страницу и нажимаю что-либо на reportviewr, я получаю сообщение об ошибке. Ошибка заключается в следующем.

 Logon failed. Details: crdb_adoplus : Object reference not set to an instance of an object. Error in File 
  

Как я могу это решить

Ответ №1:

Все ли данные, необходимые для вашего отчета, присутствуют в вашем наборе данных?

 CType(Adp.GetData(), DataTable)
  

Если это так, то вам не нужно указывать информацию о подключении, потому что вы уже отправили все данные в отчет, и он не должен пытаться запрашивать дополнительные данные с сервера.

Редактировать:

Выполняется ли

 Adp.GetData()
  

получить все данные для отчета? Если это так, то удалите весь приведенный ниже код и повторите попытку:

 Client.EnableDatabaseLogonPrompt = False

Dim ConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo

ConnectionInfo.ServerName = "MyServer"
ConnectionInfo.DatabaseName = "MyDB"
ConnectionInfo.UserID = "MyUser"
ConnectionInfo.Password = "MyPassword"
ConnectionInfo.Type = CrystalDecisions.Shared.ConnectionInfoType.SQL
ConnectionInfo.AllowCustomConnection = True

For Each TableLogOnInfoVar As TableLogOnInfo In ClientReportViewer.LogOnInfo
    TableLogOnInfoVar.ConnectionInfo = ConnectionInfo
Next
  

Комментарии:

1. Но я не могу перейти на следующую страницу или другую кнопку средства просмотра отчетов.