# MailMerge.Merge Method

> Merges given data into the loaded document template. The supported format of the merge fields can be found in the ASP.NET User's Guide.

- **Product:** TX Text Control .NET for WPF
- **Section:** Reference
- **Kind:** Method
- **Introduced:** 14.0
- **Namespace:** `TXTextControl.DocumentServer`
- **Package:** `TXTextControl.TextControl.WPF.SDK` (assembly `TXDocumentServer.dll`, from the private NuGet feed or Text Control Offline Packages)
- **.NET Framework:** reference `TXDocumentServer.dll` from the setup
- **Path:** TX Text Control .NET for WPF > Reference > TXTextControl.DocumentServer > MailMerge.Merge Method
- **1724 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/merge-method/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/merge-method/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/merge-method/llms-full.txt

---

### Description

Merges given data into the loaded document template. The supported format of the merge fields can be found in the ASP.NET User's Guide.

### Syntax

#### Merge(DataTable, bool)

Merges the loaded template with the data of a specific `System.Data.DataTable`. The second parameter specifies whether the single documents should be merged into one document or splitted into separate documents.

```csharp
public void Merge(DataTable mergeData, bool append);
```

```vbnet
Public Sub Merge(mergeData As DataTable, append As Boolean)
```

| Parameter | Description |
|---|---|
| mergeData | Specifies a `System.Data.DataTable` that contains the merge data. |
| append | Specifies whether the single documents should be merged into one document or split into separate documents. |

#### Merge(DataTable)

Does the same as Merge(System.Data.DataTable mergeData, bool append) with parameter “append” set to true.

```csharp
public void Merge(DataTable mergeData);
```

```vbnet
Public Sub Merge(mergeData As DataTable)
```

| Parameter | Description |
|---|---|
| mergeData | Specifies a `System.Data.DataTable` that contains the merge data. |

#### Merge(bool)

Merges data into the template using a data base connection given through a data source configuration file or data source configuration XML data. (See also [ReportDataSourceConfigFile](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/reportdatasourceconfigfile-property/llms-full.txt) property and [ReportDataSourceConfig](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/reportdatasourceconfig-property/llms-full.txt) property)

```csharp
public void Merge(bool append);
```

```vbnet
Public Sub Merge(append As Boolean)
```

| Parameter | Description |
|---|---|
| append | Specifies whether the single documents should be merged into one document or split into separate documents. |

#### Merge()

Does the same as method Merge(bool append) with parameter “append” set to true.

```csharp
public void Merge();
```

```vbnet
Public Sub Merge()
```

### Examples

The following example merges a template that contains two merge fields: name and company.

```csharp
DataTable mergeData = new DataTable();
mergeData.Columns.Add("name");
mergeData.Columns.Add("company");

mergeData.Rows.Add(new object[] { "Peter Jackson", "Text Control GmbH" });
mergeData.Rows.Add(new object[] { "Jack Petersen", "The Imaging Source LLC" });

mailMerge1.LoadTemplate("template.doc", TXTextControl.DocumentServer.FileFormat.MSWord);

mailMerge1.Merge(mergeData, true);

TXTextControl.SaveSettings sSettings = new TXTextControl.SaveSettings();
mailMerge1.SaveDocument("results.pdf", TXTextControl.StreamType.AdobePDF, sSettings);
```

```vbnet
Dim MergeData As New DataTable()
MergeData.Columns.Add("name")
MergeData.Columns.Add("company")

MergeData.Rows.Add(New Object() {"Peter Jackson", "Text Control GmbH"})
MergeData.Rows.Add(New Object() {"Jack Petersen", "The Imaging Source LLC"})

MailMerge1.LoadTemplate("template.doc", TXTextControl.DocumentServer.FileFormat.MSWord)

MailMerge1.Merge(MergeData, True)

Dim SSettings As New TXTextControl.SaveSettings()
MailMerge1.SaveDocument("results.pdf", TXTextControl.StreamType.AdobePDF, SSettings)
```

The following example uses Merge in a focused Mail Merge workflow. The created object is then available to the surrounding document workflow.

```csharp
mailMerge.Merge(new System.Data.DataTable(), true);
Console.WriteLine("Mail Merge is ready for use.");
```

```vbnet
mailMerge.Merge(New System.Data.DataTable(), True)
Console.WriteLine("Mail Merge is ready for use.")
```

---

## Nearby

- **Previous:** [MailMerge.LoadTemplateFromMemory Method](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/loadtemplatefrommemory-method/llms-full.txt)
- **Next:** [MailMerge.MergeBlockNamePrefix Property](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/mergeblocknameprefix-property/llms-full.txt)
