0

我正在.net平台上工作。我创建了一个单词模板(.dotx)并在其中添加了合并字段。我正在从数据库列值替换合并字段。现在我想在合并字段上循环。例如:- 我有名为 <DepartmentID> 和 <DepartmentName> 的合并字段。我正在从名为“tblDepartment”的数据库表中获取数据,该表有两列“DepID”和“DepName”。该表有 5 行。我想循环这些合并字段。

我想显示这样的文件。在执行 docx 文件之前是:- < DepartmentID > < DepartmentName >

代码执行后:- DepID DepName

                               1                 DotNet

                               2                 Java

                               3                 PHP

这是我的代码:

        foreach (Word.Field myMergeField in wordDoc.Fields)
        {
            Word.Range rngFieldCode = myMergeField.Code;
            String fieldText = rngFieldCode.Text;
            // ONLY GETTING THE MAILMERGE FIELDS
            if (fieldText.StartsWith(" MERGEFIELD"))
            {
                Int32 endMerge = fieldText.IndexOf("\\");
                Int32 fieldNameLength = fieldText.Length - endMerge;
                String fieldName = fieldText.Substring(11, endMerge - 11);
                fieldName = fieldName.Trim().Replace("\"", "");
                if (fieldName == "DepartmentID")
                {
                    myMergeField.Select();
                    wordApp.Selection.TypeText("DepartmentID");
                }
                if (fieldName == "DepartmentName")
                {
                    EAccreditationEntities dbModel = new EAccreditationEntities();
                    var q = (from p in dbModel.Departments select p).ToList();
                    //here q has all data from database , have columns (ID and Name of Department)
                     myMergeField.Select();
                    wordApp.Selection.TypeText("DEPNAME");
                }
            }

问题是,我的文档有五页,第 5 页的合并字段和 sql 查询返回 5 行。当我执行我的代码时,它在第 5 页显示第一条记录,然后使用 1、2、3、4 页内容创建 6、7、8、9 页,在第 10 页显示第二条记录,依此类推....过程创建 25 页的文档文件。

但我只想在第 5 页显示所有数据。并且不想创建额外的页面。

4

0 回答 0