首页 文章

如何设置Crystal报告连接信息

提问于
浏览
0

我使用Crystal报表来报告我的应用程序 . 问题是我不知道怎么做

设置Crystal报表的连接信息 . 这是我试过的代码:

private void button5_Click(object sender, EventArgs e)
    {
        ReportDocument cryRpt = new ReportDocument();

        TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
        TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
        ConnectionInfo crConnectionInfo = new ConnectionInfo();
        Tables CrTables;

        crConnectionInfo.ServerName = ".\\SQLEXPRESS";
        crConnectionInfo.DatabaseName = "GestStock.mdf";
        crConnectionInfo.UserID = "";
        crConnectionInfo.Password = "";
        CrTables = cryRpt.Database.Tables;

        cryRpt.Load("C:\\Documents and Settings\\Administrateur\\Mes documents\\GestionStock\\GestionStock\\CrystalReport1.rpt");

        foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
        {
            crtableLogoninfo = CrTable.LogOnInfo;
            crtableLogoninfo.ConnectionInfo = crConnectionInfo;
            CrTable.ApplyLogOnInfo(crtableLogoninfo);
        }

        crystalReportViewer1.ReportSource = cryRpt;
        crystalReportViewer1.Refresh();
    }

但它不起作用我收到此错误消息:

Chemin d'accès au fichier de rapport non valide (Invalid report file path)

PS:这是我的sql server数据库的连接字符串:

“数据源= . \ SQLEXPRESS; AttachDbFilename = C:\ DOCUMENTS AND SETTINGS \ ADMINISTRATEUR \ MES DOCUMENTS \ GESTIONSTOCK \ GESTIONSTOCK \ GestStock.mdf; Integrated Security = True; User Instance = True”;

那么如何以正确的方式设置呢?

2 回答

  • 1

    Crystal Reports数据源基于DataSet,因此您必须首先初始化 DataSet 类的实例,并使用 DataSet 中的信息填充它,然后根据您的需要设置其参数 .

    尽管如此,您的错误消息:

    Chemin d'accèsaufichier de rapport non valide(无效的报告文件路径)

    说明报告的文件路径无效 . 因此,这与未分配或错误分配的连接字符串无关 .

    这是一个有趣的答案,展示了如何使用 DataSet 填写Crystal报表:

    确保您的报告从预期的文件路径加载,并且它可以访问它(可能是并发访问会导致问题)?

    一旦您的报告按预期加载,我猜您应该尝试使用数据集填充报告并使用它设置其数据源,如链接的答案所示 .

    这样,您的连接字符串被分配给用于实例化 SqlCommandSqlConnection ,然后您的命令被传递给SqlDataAdapter.SelectCommand属性 . 这样,您可以通过在连接字符串中指定 Integrated Security=true 并在打开它之前将其分配给 SqlConnection 实例来使用默认凭据 .

  • 0

    基本代码如下: -

    SqlConnection cnn ;
            string connectionString = null;
            string sql = null;
    
            connectionString = "data source=SERVERNAME;initial catalog=DATABASENAME;user  
                                id=USERNAME;password=PASSWORD;";
            cnn = new SqlConnection(connectionString);
            cnn.Open();
            sql = "SELECT columnName FROM tableName";
            SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
            DataSet1 ds = new DataSet1();
            dscmd.Fill(ds, "Product");
            MessageBox.Show (ds.Tables[1].Rows.Count.ToString());
            cnn.Close();
    
            CrystalReport1 objRpt = new CrystalReport1();
            objRpt.SetDataSource(ds.Tables[1]);
            crystalReportViewer1.ReportSource = objRpt;
            crystalReportViewer1.Refresh();
    

相关问题