Запретить вход в систему драйвера ODBC Text в Crystal Report для Visual Studio 2010 - PullRequest
1 голос
/ 12 сентября 2011

Я новичок в Crystal Report, и у меня есть проблема, которую я не могу решить.Поскольку я нигде не могу найти ответ, я пробую его таким образом.

Я использую Crystal Report, который использует базу данных ODBC с текстовым драйвером в качестве источника данных.Этот отчет отлично работает при открытии его с помощью автономного Crystal Report XI.

При открытии его через VS2010 через базовую программу на c # мне всегда предлагается ввести имя пользователя и пароль для этой БД, несмотря на то, чтоэтот.Из-за этого я не могу получить доступ к данным.

Странно то, что можно получить доступ к данным полей через "Просмотр данных поля" в редакторе.

Есть ли что-тоЯ скучаю?

namespace CrystalReportsApplication1
{
    public partial class Form1 : Form
    {
        private string reportPath;
        private ReportDocument repDoc = new ReportDocument();
        private FileInfo m_AssemblyCS;
        private DirectoryInfo m_SolutionRoot;

        public Form1()
        {
            InitializeComponent();
            m_AssemblyCS = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
            m_SolutionRoot = m_AssemblyCS.Directory.Parent.Parent.Parent;
            reportPath = string.Empty;
        }

        private void bOpenReport_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.InitialDirectory = m_SolutionRoot.FullName;
            openFileDialog1.Filter = "rpt files (*.rpt)|*.rpt|All files (*.*)|*.*";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            { 
                reportPath = openFileDialog1.FileName;
                tbReportPath.Text = reportPath;
                repDoc.Load(reportPath);
                crystalReportViewer.ReportSource = repDoc;
            }
        }
    }
}

Любая помощь будет очень признателен.

Обновление:

Спасибо за ваш быстрый ответ.К сожалению, это не помогло.Я все еще получаю ошибку.Я попытался сделать следующее:

private void bOpenReport_Click(object sender, EventArgs e)
{
  OpenFileDialog openFileDialog1 = new OpenFileDialog();
  openFileDialog1.InitialDirectory = m_SolutionRoot.FullName;
  openFileDialog1.Filter = "rpt files (*.rpt)|*.rpt|All files (*.*)|*.*";

  if (openFileDialog1.ShowDialog() == DialogResult.OK)
  { 
    reportPath = openFileDialog1.FileName;
    tbReportPath.Text = reportPath;
    repDoc.Load(reportPath);

    foreach(Table table in repDoc.Database.Tables)
      SetConnectionInfo(table.Name, "dds", "", "", "");

    crystalReportViewer.ReportSource = repDoc;
  }
}

private void SetConnectionInfo(string table, string server, string database, string user, string password)
{ 
  TableLogOnInfo logOnInfo = new TableLogOnInfo();
  logOnInfo = repDoc.Database.Tables[table].LogOnInfo;
  ConnectionInfo connectionInfo = new ConnectionInfo();
  connectionInfo = logOnInfo.ConnectionInfo;

  connectionInfo.DatabaseName = database;
  connectionInfo.ServerName = server;
  connectionInfo.Password = password;
  connectionInfo.UserID = user;
  repDoc.Database.Tables[table].ApplyLogOnInfo(logOnInfo);
}

Информация о соединениях таблиц установлена, но я все равно получаю диалог входа в систему.

1 Ответ

1 голос
/ 12 сентября 2011

Посмотрите на ответ на следующий вопрос: Как изменить подключение к базе данных Crystal Report ODBC во время выполнения?

Обычно мы предоставляем учетные данные подключения через «Part2»упоминается там с использованием объекта CrystalDecisions.Shared.ConnectionInfo.Обычно у вас нет имени пользователя / пароля в текстовых файлах, поэтому, возможно, вы предоставляете пустые / пустые работы.

Похоже, есть еще один вопрос, когда у парня возникла та же проблема, и она была решена следующим образом: встроенная визуальная студияCrystal Report продолжает запрашивать логин базы данных?

...