代码之家  ›  专栏  ›  技术社区  ›  IPS

用c语言动态地改变数据源#

  •  1
  • IPS  · 技术社区  · 7 年前

    我正在用bartender填充数据库中的字段数据,但在从代码更改数据库时,我不能这样做,

    e、 有一个模板叫做 测试LBL.btw 在模板中,我们配置了数据库字段 测试数据库名称 现在我有另一个数据库说 测试DB2 它们的域和 测试数据库 现在我只想用不同的数据库打印相同字段的标签( )使用c代码但不起作用:(

    下面是我的示例代码:

    btnEngine = new Engine();
    
    
                            btnEngine.Start();
                            lblDoc = btnEngine.Documents.Open(ConfigurationManager.AppSettings["BarTenderTemplate_Path"] + templateName);
    
                            var msg = new Messages();
                            var resolution = new Resolution(300);
    
                            string connectString = ConfigurationManager.ConnectionStrings["TestDB2"].ConnectionString;
                            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectString);
    
                            lblDoc.DatabaseConnections[0].Name = builder.InitialCatalog;
                            lblDoc.DatabaseConnections[0].Server = builder.DataSource;
                            lblDoc.DatabaseConnections[0].UserID = builder.UserID;
                            lblDoc.DatabaseConnections[0].SetPassword(builder.Password);
                            lblDoc.DatabaseConnections.SetDatabaseConnection(lblDoc.DatabaseConnections[0]);
    
                            lblDoc.DatabaseConnections.QueryPrompts["pRec_Key"].Value = Rec_key.ToString();
                            lblDoc.DatabaseConnections.QueryPrompts["pImage_Path"].Value = Image_Path;
    
                            var fileName = templateName.Split('.')[0] + "_" + Rec_key.ToString() + ".pdf";
    
                            var fileFullPath = Path.GetDirectoryName(ConfigurationManager.AppSettings["BarTenderTemplate_Path"]) + "\\" + templateName.Split('.')[0] + "_" + Rec_key.ToString() + ".pdf";
                            var result = lblDoc.ExportPrintPreviewToFile(Path.GetDirectoryName(ConfigurationManager.AppSettings["BarTenderTemplate_Path"]), fileName, ImageType.PDF
                                     , ColorDepth.ColorDepth24bit, resolution, Color.White, OverwriteOptions.Overwrite, true, true, out msg);
    
                            lblDoc.Close(SaveOptions.SaveChanges);
    

    它在下线抛出一个错误,没有任何内部异常,

    ,ColorDepth.colordepth24位,分辨率,Color.White,OverwriteOptions.Overwrite,true,true,out msg);

    任何帮助都将不胜感激。!

    0 回复  |  直到 7 年前
        1
  •  0
  •   Raynoceros    6 年前

    我无法对帖子发表评论,因此我将在此处提问:

    var result =  
    lblDoc.ExportPrintPreviewToFile(
        Path.GetDirectoryName(ConfigurationManager.AppSettings["BarTenderTemplate_Path"]), 
        fileName, 
        ImageType.PDF, 
        ColorDepth.ColorDepth24bit, 
        resolution, 
        Color.White, 
        OverwriteOptions.Overwrite, true, true, out msg);
    
    1. 测试DB2 在你的BTW文件数据库里?
    string connectString = ConfigurationManager.ConnectionStrings["TestDB2"].ConnectionString;
    
    1. 文件名 有效吗?
    var fileName = templateName.Split('.')[0] + "_" + Rec_key.ToString() + ".pdf";