Sets a main document 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, System.String name)
Public Sub SetDataSource(ByVal dr As System.Data.IDataReader, ByVal name As String)

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.

Specifies the data source name for the set of merge fields.

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.

This method may be called once for each set of merge fields in the main document.


          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, "Employee");

          //--- 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, "Employee")

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