Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Description

...

Wiki Markup
{description}
{excerpt}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.

...

Signature
C#C#

{excerpt}
{signature:C#}
 public void SetDataSource(System.Data.IDataReader dr)
Signature
{signature}
{signature:vb.net
vb.net
}
Public Sub SetDataSource(ByVal dr As System.Data.IDataReader)
Parameters

...

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.

Exceptions


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

          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();
          ...
        
{code}
{code:vb.net
|title=vb.net
}

          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()
          ...
        {code}

{example}
Exception
ArgumentNullExceptionArgumentNullException

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

Exception
ArgumentExceptionArgumentException
Remarks

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:
{signature}
{parameters}
{param:dr}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.
{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 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|WordTemplate]. To set multiple main document data sources, use the following methods:\[SetDataSource(Object(), String(), String)|WordTemplate.SetDataSource(Object(), String(), String)]\[SetDataSource(System.Data.DataSet, String)|WordTemplate.SetDataSource(System.Data.DataSet, String)]\[SetDataSource(System.Data.DataTable, String)|WordTemplate.SetDataSource(System.Data.DataTable, String)]\[SetDataSource(System.Data.IDataReader, String)|WordTemplate.SetDataSource(System.Data.IDataReader, String)]
Example
Code Block
csharpcsharp
titleC#
Code Block
vb.nettitle