Member 10071718 Ответов: 1

Crystal reports "ошибка входа в базу данных"?


Я разрабатываю приложение Windows Form с использованием C#. Свой напечатанный счет для пользы кристаллического отчета. Но не Билл принт. приходит "ошибка входа в базу данных" ошибка. как можно решить эту проблему? пожалуйста, помогите мне.

Выход:
'POS_System.exe' (CLR v4.0.30319: POS_System.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Web.Services\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'POS_System.exe' (CLR v4.0.30319: POS_System.exe): Loaded 'C:\WINDOWS\assembly\GAC_MSIL\CrystalDecisions.ReportSource\13.0.3500.0__692fbea5521e1304\CrystalDecisions.ReportSource.dll'. Cannot find or open the PDB file.
Exception thrown: 'CrystalDecisions.CrystalReports.Engine.LogOnException' in CrystalDecisions.CrystalReports.Engine.dll
The program '[15476] POS_System.exe: Program Trace' has exited with code 0 (0x0).
The program '[15476] POS_System.exe' has exited with code -1 (0xffffffff).


Что я уже пробовал:

использование метода подключения ODBC. Итак, я хочу использовать идентификатор пользователя и пароль для входа в базу данных SQL server. Не метод проверки подлинности windows.

san2debug

Не могли бы вы поделиться своим кодом здесь? Так что мы можем мочь помочь вам

Member 10071718

только часть дизайна,
1 - Создание соединителя ODBC
2 - создание отчета Crystal с помощью подключения ODBC
это кодовый Раздел для печати счета,

CrystalReport1 OBjcryBill1 = new CrystalReport1();
OBjcryBill1.PrintToPrinter(1, false, 0, 0);

1 Ответов

Рейтинг:
0

an0ther1

Убедитесь, что вы добавили ссылки на Crystal Reports следующим образом;
Кристаллические решения.CrystalReports.Двигатель
Кристаллические решения.ReportSource
Кристаллические решения.Общий
Кристаллические решения.Окна.Формы

Добавьте следующие операторы using;

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

Приведенный ниже код используется для открытия отчета Crystal и применения информации о входе в систему.
// create the report object
ReportDocument rptDoc = new ReportDocument();
rptDoc.Load("<Path & file name of the report>");
// create the connection information
ConnectionInfo conRpt = new ConnectionInfor();
conRpt.ServerName = "DB Server Name";
conRpt.DatabaseName = "DB Name";
conRpt.UserID = "User name";
conRpt.Password = "Password";
// apply connection information to the report tables
Tables rptTables = rptDoc.Database.Tables;
for(int i = 0; i < rptTables.Count; i++)
{
    Table rptTable = rptTables[i];
    TableLogOnInfo tblInfo = rptTable.LogOnInfo;
    tblInfo.ConnectionInfo = conRpt;
    // next table
}
// if the report contains sub reports, you will need to set the connection info there too
if(rptDoc.SubReports.Count > 0)
{
    for(int i = 0; i < rptDoc.Subreports.Count; i++)
    {
        using(ReportDocument rptSub = rptDoc.OpenSubReport(rptDoc.SubReports[i].Name))
        {
            Tables rptTables = rptSub.Database.Tables;
            for(int i = 0; i < rptTables.Count; i++)
            {
                Table rptTable = rptTables[i];
                TableLogOnInfo tblInfo = rptTable.LogOnInfo;
                tblInfo.ConnectionInfo = conRpt;
                // next table
            }
            rptSub.Close();
        }
    }
}
// Show Report in Viewer - you can also send direct to a printer if required
// Note; do not call refresh report on the ReportViewer control as this will undo all of the above
frmReportViewer.ReportSource = rptDoc;


с уважением