使用C#动态使用调酒师更改数据源

时间:2018-08-29 05:58:22

标签: c# asp.net c#-4.0 ado.net bartender

我正在用调酒师填充数据库中的字段数据,但在从代码更改数据库时却无法执行同样的操作,

例如有一个名为 TestLBL.btw 的模板,在模板中,我们已配置数据库字段为 TestDB.Name 字段。现在,我还有另一个数据库为 TestDB2 >并且具有与 TestDB 完全相同的字段,现在我只想使用c#代码使用不同的数据库( TestDB2 )来打印具有相同字段的标签,但这不起作用:(

下面是我的示例代码:

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);

它在下面的行中引发错误,没有任何内部异常,

var结果= lblDoc.ExportPrintPreviewToFile(Path.GetDirectoryName(ConfigurationManager.AppSettings [“ BarTenderTemplate_Path”]),fileName,ImageType.PDF                                  ,ColorDepth.ColorDepth24bit,分辨率,Color.White,OverwriteOptions.Overwrite,true,true,out msg);

任何帮助将不胜感激!!

1 个答案:

答案 0 :(得分:0)

我无法对此信息发表评论,所以我在这里问我的问题:

  
      
  1. 此行中的错误消息是什么?
  2.   
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. 您是否在BTW文件数据库中设置了 TestDB2
  2.   
string connectString = ConfigurationManager.ConnectionStrings["TestDB2"].ConnectionString;
  
      
  1. 您的文件名有效吗?
  2.   
var fileName = templateName.Split('.')[0] + "_" + Rec_key.ToString() + ".pdf";