{description}
{excerpt}Sets a template's main document data source to an {msdn:System.Collections.IDictionary|IDictionary} collection. An {{IDictionary}} represents a collection of key\-and\-value pairs.
{excerpt}
{signature:C#}
 public void SetDataSource(System.Collections.IDictionary dataSource, System.String dataSourceName)
{signature}
{signature:vb.net}
Public Sub SetDataSource(ByVal dataSource As System.Collections.IDictionary, ByVal dataSourceName As String)
{signature}
{parameters}
{param:dataSource}An {{IDictionary}} collection of key\-and\-value pairs.
{param}
{param:datSourceName}The name of the set of template merge fields at which to insert the values imported from the data source.
{param}
{exceptions}
{exception:ArgumentNullException}[Save|WordTemplate.Save] will throw this exception if {{null}} \(C\#\) or {{Nothing}} \(VB.NET\) is passed to the method.
{exception}
{exception:ArgumentException}
{exception}
{remarks}Each merge field in a WordWriter template must bind to a data source field/value pair. The number of merge fields in the main template document \(the part of the document that is not within a repeat block\) may not exceed the number of values in the data source defined by [SetDataSource|WordTemplate.SetDataSource]. However, the number of values in the data source may be greater than the number of merge fields in the main template document.

{remarks}
{example}{code:csharp|title=C#}

          wTempl.SetDataSource(coll, "Products");
        {code}
{code:vb.net|title=vb.net}

          wTempl.SetDataSource(coll, "Products")
        {code}

{example}