Sets a template's data source to an an IDataReader interface, which may be either a SqlDataReader, OleDbDataReader or an AdomdDataReader. If the specified DataReader returns more than one row, WordWriter will use the first row as the data source.

 public void SetDataSource(System.Data.IDataReader dr)
Public Sub SetDataSource(ByVal dr As System.Data.IDataReader)

A SqlDataReader, OleDbDataReader or an AdomdDataReader to use as the data source. WordWriter will use the first row of the DataReader as the data source.

Save will throw this exception if null (C#) or Nothing (VB.NET) is passed to the method.

Each merge field in a WordWriter template must bind to a data source field/value pair. The number of merge fields in the template may not exceed the number of values in the data source. However, the number of values in the data source may be greater than the number of merge fields in the template.

Do not call this method more than once for a single instance of WordTemplate. To set multiple main document data sources, use the following methods:
SetDataSource(Object(), String(), String)
SetDataSource(System.Data.DataSet, String)
SetDataSource(System.Data.DataTable, String)
SetDataSource(System.Data.IDataReader, String)


          WordTemplate oWW = new WordTemplate();
          oWW.Open(@"c:\temp\template.doc");
          string strSQL = "SELECT LastName, FirstName, " +
               "TitleOfCourtesy, Address, City, Region, PostalCode " +
               "FROM Employees WHERE EmployeeID=1";

          //--- Create an OLEDB connection.
          OleDbConnection oConn = new OleDbConnection(strConnString);

          //--- Create an OleDbCommand
          OleDbCommand oCmd = new OleDbCommand(strSQL, oConn);

          //--- Get an OleDbDataReader
          oConn.Open();
          OleDbDataReader oReader =
               oCmd.ExecuteReader(CommandBehavior.CloseConnection);

          //--- Pass the DataReader to SetDataSource.
          oWW.SetDataSource(oReader);

          //--- Close the reader (should do this in a finally block)
          oReader.Close();
          ...
        

          Dim oWW As New WordTemplate()
          oWW.Open("c:\temp\template.doc")
          Dim strSQL As String = "SELECT LastName, FirstName, " & _
               "TitleOfCourtesy, Address, City, Region, PostalCode " & _
               "FROM Employees WHERE EmployeeID=1"

          '--- Create an OLEDB connection.
          Dim oConn As New OleDbConnection(strConnString)

          '--- Create an OleDbCommand
          Dim oCmd As New OleDbCommand(strSQL, oConn)

          '--- Get an OleDbDataReader
          oConn.Open()
          Dim oReader As OleDbDataReader = _
               oCmd.ExecuteReader(CommandBehavior.CloseConnection)

          '--- Pass the DataReader to SetDataSource.
          oWW.SetDataSource(oReader)

          '--- Close the reader (should do this in a finally block)
          oReader.Close()
          ...