Verbinden eines Elements im Datenspeicher mit einer SQL Server-Datenbank
Mit Word können Sie Dokumente durch Erstellen von datengesteuerten Lösungen generieren. Sie können ein Vorlagendokument mit einer benutzerdefinierten XML-Komponente erstellen und Inhaltssteuerelemente verwenden, um mithilfe der XML-Zuordnung eine Bindung an benutzerdefinierte XML-Daten zu erstellen. Obwohl der Begriff Vorlage in diesem Kontext verwendet wird, ist dieses Dokument keine Word-Vorlage, sondern weist einige Merkmale eines Word-Vorlagendokuments auf. Sie können dann eine verwaltete webbasierte Anwendung zum Erstellen eines neuen Dokuments auf Grundlage des Vorlagendokuments erstellen. Die verwaltete webbasierte Anwendung öffnet das Vorlagendokument, ruft Daten aus einer Microsoft SQL Server-Datenbank ab, um eine neue benutzerdefinierte XML-Komponente zu erstellen, ersetzt die benutzerdefinierte XML-Komponente des Vorlagendokuments mit der neuen Komponente und speichert das Vorlagendokument als ein neues Word-Dokument.
In dieser exemplarischen Vorgehensweise wird erläutert, wie Sie ein neues Vorlagendokument erstellen und wie Sie eine serverseitige Anwendung erstellen, die Dokumente generiert, die in einer Microsoft SQL Server-Datenbank gespeicherte Daten anzeigt. Zum Erstellen dieser Anwendung führen Sie die folgenden beiden Aufgaben aus:
Erstellen eines Word-Vorlagendokuments
Erstellen einer serverseitigen webbasierten Anwendung, die Daten aus einer Microsoft SQL Server-Datenbank abruft und neue Dokumente basierend auf dem Word-Vorlagendokument generiert
Folgende programmgesteuerte Objekte werden in diesem Beispiel verwendet:
CustomXMLPart (im Microsoft Office- system core object model)
CustomXMLParts (in the Microsoft Office-Systemkern-Objektmodell)
Weitere Informationen zu Inhaltssteuerelementen finden Sie unter Arbeiten mit Inhaltssteuerelementen.
Geschäftsszenario: Erstellen eines Kundendokument-Generators
Zum Erstellen eines Word-Dokument-Generator, der ein Element im Datenspeicher mit einer Microsoft SQL Server-Datenbank verbindet, erstellen Sie zunächst eine Vorlage für ein Kundenbrief-Generator-Dokument, das Inhaltssteuerelemente enthält, die einer XML-Datei zugeordnet sind. Als Nächstes erstellen Sie eine webbasierte Anwendung für die Dokumentgenerierung, mit der Sie einen Firmennamen zum Generieren eines benutzerdefinierten Dokuments auswählen können. Die Anwendung ruft Kundendaten aus einer Microsoft SQL Server-Datenbank ab und verwendet den Kundenbrief-Generator, um ein neues Dokument zu erstellen, in dem Kundendaten anhand der Auswahl des Benutzers angezeigt werden. Das Dokument zeigt die folgenden Informationen an:
- Firmenname
- Name der Kontaktperson
- Titel der Kontaktperson
- Telefonnummer
Verwenden Sie die folgenden allgemeinen Schritte, um einen Word-Dokument-Generator zu erstellen.
So erstellen Sie einen benutzerdefinierten Dokument-Generator und definieren die XML-Zuordnungen für jedes Inhaltssteuerelement
Öffnen Sie Word, und erstellen Sie ein leeres Dokument.
Fügen Sie Nur-Text-Inhaltssteuerelemente zum Dokument hinzu, um eine Bindung zu Knoten im Datenspeicher herzustellen.
Inhaltssteuerelemente sind vordefinierte Inhaltsblöcke. Word bietet verschiedene Arten von Inhaltssteuerelementen. Dazu zählen Textblöcke, Kontrollkästchen, Dropdownmenüs, Kombinationsfelder, Kalendersteuerelemente und Bilder. Sie können diese Inhaltssteuerelemente zu einem Element in einer XML-Datei zuordnen. Mithilfe von XPath-Ausdrücken können Sie Inhalte in einer XML-Datei programmgesteuert einem Inhaltssteuerelement zuordnen. Dies ermöglicht Ihnen, eine einfache und kurze Anwendung zu schreiben, um Daten in einem Dokument zu bearbeiten und zu ändern.
Klicken Sie zum Hinzufügen eines Inhaltssteuerelements auf die Registerkarte Entwickler, und klicken Sie in der Gruppe Steuerelemente auf Nur-Text-Inhaltssteuerelement.
Fügen Sie dem Dokument vier Nur-Text-Inhaltssteuerelemente hinzu. Nachdem Sie jedes Steuerelement hinzugefügt haben, weisen Sie jedem einen Titel zu: Klicken Sie auf das Steuerelement; klicken Sie in der Gruppe Steuerelemente auf Eigenschaften; Geben Sie im Feld Titel einen Titel für das Steuerelement ein, wie in der folgenden Liste gezeigt. und klicken Sie dann auf OK.
- Firmenname
- Name der Kontaktperson
- Titel der Kontaktperson
- Telefonnummer
Sie können außerdem den folgenden Visual Basic for Applications (VBA)-Code verwenden, um dem Dokument Inhaltssteuerelemente hinzuzufügen. Drücken Sie ALT+F11, um den Visual Basic-Editor zu öffnen, fügen Sie den Code in das Codefenster ein, klicken Sie auf eine beliebige Stelle in der Prozedur, und drücken Sie dann F5, um den Code auszuführen und vier Inhaltssteuerelemente zu Ihrem Vorlagendokument hinzuzufügen.
Sub AddContentControls() Selection.Range.ContentControls.Add (wdContentControlText) Selection.ParentContentControl.Title = "Company Name" Selection.ParentContentControl.Tag = "Company Name" Selection.MoveDown Unit:=wdLine, Count:=1 Selection.TypeParagraph Selection.Range.ContentControls.Add (wdContentControlText) Selection.ParentContentControl.Title = "Contact Name" Selection.ParentContentControl.Tag = "Contact Name" Selection.MoveDown Unit:=wdLine, Count:=1 Selection.TypeParagraph Selection.Range.ContentControls.Add (wdContentControlText) Selection.ParentContentControl.Title = "Contact Title" Selection.ParentContentControl.Tag = "Contact Title" Selection.MoveDown Unit:=wdLine, Count:=1 Selection.TypeParagraph Selection.Range.ContentControls.Add (wdContentControlText) Selection.ParentContentControl.Title = "Phone Number" Selection.ParentContentControl.Tag = "Phone Number" Selection.MoveDown Unit:=wdLine, Count:=1 Selection.TypeParagraph End Sub
Legen Sie die XML-Zuordnung für die Inhaltssteuerelemente fest.
Die XML-Zuordnung ist eine Funktion von Word, mit der Sie eine Verknüpfung zwischen einem Dokument und einer XML-Datei erstellen können. Dadurch wird eine echte Daten-/Ansichtstrennung zwischen der Dokumentformatierung und den benutzerdefinierten XML-Daten erstellt.
Um eine benutzerdefinierte XML-Komponente zu laden, müssen Sie zunächst einen neuen Datenspeicher zu einem Document-Objekt hinzufügen, indem Sie die Add-Methode der CustomXMLParts-Auflistung verwenden. Damit wird dem Dokument ein neuer, leerer Datenspeicher angefügt. Da er leer ist, können nicht Sie ihn noch nicht verwenden. Als Nächstes müssen Sie eine benutzerdefinierte XML-Komponente aus einer XML-Datei in den Datenspeicher laden, indem Sie die Methode Load des Objekts CustomXMLPart aufrufen, die einen gültigen Pfad zu einer XML-Datei als Parameter verwendet.
Speichern Sie das Dokument, und nennen Sie es CustomerLetterGenerator.docm.
Hinweis
Da es VBA-Code enthält, müssen Sie das Dokument als Makro-fähige Dokumentdatei (.docm)|
Im folgenden Verfahren wird erläutert, wie Sie ein Inhaltssteuerelement zu einer benutzerdefinierten XML-Beispieldatei zuordnen. Sie erstellen eine gültige benutzerdefinierte XML-Datei, speichern die Datei, und verwenden dann Visual Basic for Applications (VBA)-Code, um dem Vorlagendokument einen Datenspeicher hinzuzufügen, der die Informationen enthält, die Sie zuordnen möchten.
So legen Sie eine XML-Zuordnung für ein Inhaltssteuerelement fest
Erstellen Sie eine Textdatei, und speichern Sie sie als CustomerData.xml.
Kopieren Sie den folgenden XML-Code in die Textdatei, und speichern Sie die Datei.
<?xml version="1.0"?> <Customer> <CompanyName>Alfreds Futterkiste</CompanyName> <ContactName>Maria Anders</ContactName> <ContactTitle>Sales Representative</ContactTitle> <Phone>030-0074321</Phone> </Customer>
Drücken Sie ALT+F11, um den Visual Basic-Editor zu öffnen, fügen Sie den folgenden Code in das Codefenster ein, klicken Sie auf eine beliebige Stelle in der Prozedur, und drücken Sie dann F5, um den Code auszuführen und eine XML-Datei an Ihr Vorlagendokument anzufügen, damit es ein verfügbares Datenspeicherelement wird.
Public Sub LoadXML() ' Load CustomerData.xml file ActiveDocument.CustomXMLParts.Add ActiveDocument.CustomXMLParts(ActiveDocument.CustomXMLParts.Count).Load ("C:\CustomerData.xml") End Sub
Hinweis
Es gibt mindestens drei benutzerdefinierte XML-Standardteile, die immer mit einem Dokument erstellt werden: "Deckblätter", "Doc-Eigenschaften" und "App-Eigenschaften". Darüber hinaus können verschiedene andere benutzerdefinierte XML-Komponenten auf einem bestimmten Computer erstellt werden, abhängig von verschiedenen Faktoren, z. B., welche Add-ons installiert sind, Verbindungen mit SharePoint und so weiter. Durch Aufrufen der Add-Methode für die CustomXMLParts-Auflistung im vorherigen Code wird ein zusätzlicher XML-Teil hinzugefügt, in den die XML-Datei geladen wird. In diesem Teil wird die Load-Methode in der nächsten Codezeile aufgerufen.
Um die Indexnummer der Komponente zu bestimmen, in die die XML-Datei geladen wird, muss die Anzahl der benutzerdefinierten XML-Komponenten an die Methode Load übergeben werden.
ActiveDocument.CustomXMLParts(ActiveDocument.CustomXMLParts.Count).Load ("C:\CustomerData.xml")
Legen Sie eine XML-Zuordnung für ein Inhaltssteuerelement fest, die auf einen Knoten im hinzugefügten Datenspeicher verweist.
Um eine XML-Zuordnung zu erstellen, verwenden Sie einen XPath-Ausdruck, der auf den Knoten in der benutzerdefinierten XML-Datenkomponente verweist, der Sie ein Inhaltssteuerelement zuordnen möchten. Nach dem Hinzufügen eines Datenspeichers zu Ihrem Dokument (und der Datenspeicher verweist auf eine gültige XML-Datei) können Sie einen der Knoten zu einem Inhaltssteuerelement zuordnen.
Übergeben Sie zu diesem Zweck eine Zeichenfolge, die einen gültigen XPath enthält, an ein ContentControl-Objekt, indem Sie die Methode SetMapping des Objekts XMLMapping verwenden (mithilfe der Eigenschaft XMLMapping des Objekts ContentControl). Öffnen Sie den Visual Basic-Editor, und führen Sie den folgenden VBA-Code aus, um Inhaltssteuerelemente an Elemente im Datenspeicher zu binden.
Public Sub MapXML() Dim strXPath1 As String strXPath1 = "/Customer/CompanyName" ActiveDocument.ContentControls(1).XMLMapping.SetMapping strXPath1 Dim strXPath2 As String strXPath2 = "/Customer/ContactName" ActiveDocument.ContentControls(2).XMLMapping.SetMapping strXPath2 Dim strXPath3 As String strXPath3 = "/Customer/ContactTitle" ActiveDocument.ContentControls(3).XMLMapping.SetMapping strXPath3 Dim strXPath4 As String strXPath4 = "/Customer/Phone" ActiveDocument.ContentControls(4).XMLMapping.SetMapping strXPath4
Erstellen einer serverseitigen Anwendung, die Daten aus einer SQL Server-Datenbank abruft und ein neues Dokument generiert
Sie können eine webbasierte Anwendung erstellen, mit der Benutzer einen Firmennamen auswählen und einen benutzerdefinierten Brief generieren können. Die webbasierte Anwendung ruft Kundendaten aus einer SQL Server-Datenbank ab, öffnet das Vorlagendokument für den Kundenbrief und erstellt ein neues Dokument, in dem Kundendaten basierend auf der Auswahl des Benutzers angezeigt werden. Für diese webbasierte Anwendung ist nicht die Verwendung von Word oder VBA erforderlich. Verwenden Sie Ihre bevorzugte Sprache für verwalteten Code (Visual Basic .NET oder C#), um diese Anwendung zu erstellen.
Hinweis
Die hier gezeigte webbasierte Anwendung ruft Daten aus der Datenbank Northwind.mdf ab. Diese Datenbank wurde mit früheren Versionen von SQL Server und Office installiert. Wenn Sie die Northwind-Datenbank nicht auf Ihrem Computer haben, können Sie sie von der folgenden Website herunterladen: Northwind-Datenbank
So erstellen Sie eine serverseitige Anwendung, die Daten aus einer SQL Server-Datenbank abruft und ein neues Dokument generiert
Öffnen Sie Visual Studio oder Visual Web Developer.
Erstellen eine ASP.NET-Webanwendung, und nennen Sie sie SqlServerSample .
In den folgenden Schritten verbinden Sie die ASP.NET-Webanwendung mit einer SQL Server-Datenbank.
Fügen Sie die folgende Verbindungszeichenfolge zur Datei „Web.config“ in Ihrem Visual Studio-Projekt hinzu.
<connectionStrings> <add name="NorthwindConnectionString" connectionString="data source=(local);database=Northwind; integrated security=SSPI;persist security info=false;" providerName="System.Data.SqlClient" /> </connectionStrings>
Fügen Sie in Ihrem Visual Studio-Projekt das Dokument „CustomerLetterGenerator.docm“ zum Ordner App_Data hinzu: Klicken Sie mit der rechten Maustaste auf App_Data, zeigen Sie auf Hinzufügen, klicken Sie auf Vorhandnes Element, navigieren Sie zu dem Speicherort, an dem Sie das Dokument gespeichert haben, wählen Sie es aus, und klicken Sie dann auf Hinzufügen.
Fügen Sie einen Verweis auf „WindowsBase.dll“ zu Ihrem Projekt hinzu: Klicken Sie mit der rechten Maustaste auf Verweise, klicken Sie auf Verweis hinzufügen, klicken Sie auf die Registerkarte .NET, wählen Sie WindowsBase aus, und klicken Sie dann auf OK.
Herunterladen und Installieren von Microsoft .NET Framework 4.0
Konfigurieren Sie die Assembly in der Datei „Web.config“ wie folgt.
<compilation debug="false"> <assemblies> <add assembly="WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </assemblies> </compilation>
Fügen Sie Ihrem Projekt ein Webformular hinzu: Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Klicken Sie unter Installierte Vorlagen auf Web, wählen Sie Webformular aus, und klicken Sie dann auf Hinzufügen.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Eigenschaften, und klicken Sie dann auf Öffnen.
Wählen Sie auf der Registerkarte Web unter Startaktion die Option Bestimmte Seite aus, klicken Sie auf die Schaltfläche zum Durchsuchen, und navigieren Sie zur Seite WebForm1.aspx.
Fügen Sie der Datei WebForm1.aspx den folgenden Code hinzu, und überschreiben Sie dabei den Teil der Datei, der durch die öffnenden und schließenden
<html>
Tags begrenzt ist.<html xmlns="https://www.w3.org/1999/xhtml"> <head runat="server"> <title>Data-Driven Document Generation - SQL Server Sample</title> </head> <body> <form id="form1" runat="server"> <div> <h1>Customer Letter Generator</h1> <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; height: 12%"> <tr> <td> Choose a customer:</td> <td> <asp:DropDownList ID="ddlCustomer" runat="server" AutoPostBack="True" DataSourceID="CustomerData" DataTextField="CompanyName" DataValueField="CustomerID" Width="301px"> </asp:DropDownList> <asp:SqlDataSource ID="CustomerData" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT [CustomerID], [CompanyName] FROM [Customers]" ProviderName="<%$ ConnectionStrings:NorthwindConnectionString.ProviderName %>"> </asp:SqlDataSource> </td> </tr> </table> </div> <br /> <asp:Button ID="Button1" runat="server" OnClick="SubmitBtn_Click" Text="Create Letter" Width="123px" /> </form> </body> </html>
Fügen Sie je nach verwendeter Codierungssprache den folgenden Visual Basic .NET- oder C#-Code zur entsprechenden WebForm1.aspx-CodeBehind-Seite in Ihrem Projekt hinzu.
Beispielcode: Visual Basic .NET
Im folgenden Beispiel für Visual Basic .NET wird gezeigt, wie Sie die Bindung mit einer SQL Server-Datenbank herstellen, um Daten basierend auf der Kundenauswahl abzurufen und ein neues Dokument basierend auf dem Vorlagendokument „CustomerLetterGenerator.docm“ zu erstellen. Fügen Sie den folgenden Code zur Datei WebForm1.aspx.vb hinzu, und überschreiben Sie dabei den vorhandenen Code in der Datei.
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports System.IO.Packaging
Imports System.Linq
Imports System.Xml
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Private Const strRelRoot As String = "https://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
Private Sub CreateDocument()
' Get the template document file and create a stream from it
Const DocumentFile As String = "~/App_Data/CustomerLetterGenerator.docm"
' Read the file into memory
Dim buffer() As Byte = File.ReadAllBytes(Server.MapPath(DocumentFile))
Dim memoryStream As MemoryStream = New MemoryStream(buffer, True)
buffer = Nothing
' Open the document in the stream and replace the custom XML part
Dim pkgFile As Package = Package.Open(memoryStream, FileMode.Open, FileAccess.ReadWrite)
Dim pkgrcOfficeDocument As PackageRelationshipCollection = pkgFile.GetRelationshipsByType(strRelRoot)
For Each pkgr As PackageRelationship In pkgrcOfficeDocument
If (pkgr.SourceUri.OriginalString = "/") Then
' Get the root part
Dim pkgpRoot As PackagePart = pkgFile.GetPart(New Uri(("/" + pkgr.TargetUri.ToString), UriKind.Relative))
' Add a custom XML part to the package
Dim uriData As Uri = New Uri("/customXML/item1.xml", UriKind.Relative)
If pkgFile.PartExists(uriData) Then
' Delete part "/customXML/item1.xml" part
pkgFile.DeletePart(uriData)
End If
' Load the custom XML data
Dim pkgprtData As PackagePart = pkgFile.CreatePart(uriData, "application/xml")
GetDataFromSQLServer(pkgprtData.GetStream, ddlCustomer.SelectedValue)
End If
Next
' Close the file
pkgFile.Close()
' Return the result
Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("content-disposition", "attachment; filename=document.docx")
Response.ContentEncoding = System.Text.Encoding.UTF8
memoryStream.WriteTo(Response.OutputStream)
memoryStream.Close()
Response.End()
End Sub
Private Sub GetDataFromSQLServer(ByVal stream As Stream, ByVal customerID As String)
'Connect to a SQL Server database and get data
Dim source As String = ConfigurationManager.ConnectionStrings("NorthwindConnectionString").ConnectionString
Const SqlStatement As String = "SELECT CompanyName, ContactName, ContactTitle, Phone FROM Customers WHERE CustomerID=@customerID"
Dim conn As SqlConnection = New SqlConnection(source)
conn.Open()
Dim cmd As SqlCommand = New SqlCommand(SqlStatement, conn)
cmd.Parameters.AddWithValue("@customerID", customerID)
Dim dr As SqlDataReader = cmd.ExecuteReader
If dr.Read Then
Dim writer As XmlWriter = XmlWriter.Create(stream)
writer.WriteStartElement("Customer")
writer.WriteElementString("CompanyName", CType(dr("CompanyName"), String))
writer.WriteElementString("ContactName", CType(dr("ContactName"), String))
writer.WriteElementString("ContactTitle", CType(dr("ContactTitle"), String))
writer.WriteElementString("Phone", CType(dr("Phone"), String))
writer.WriteEndElement()
writer.Close()
End If
dr.Close()
conn.Close()
End Sub
Protected Sub SubmitBtn_Click(ByVal sender As Object, ByVal e As EventArgs)
CreateDocument()
End Sub
End Class
Beispielcode: C#
Im folgenden C#-Beispiel wird gezeigt, wie Sie die Bindung mit einer SQL Server-Datenbank herstellen, um Daten basierend auf der Kundenauswahl abzurufen und ein neues Dokument basierend auf dem Vorlagendokument „CustomerLetterGenerator.docm“ zu erstellen. Fügen Sie den folgenden Code zur Datei WebForm1.Aspx.cs hinzu, indem Sie ihn über den vorhandenen Code kopieren.
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.IO.Packaging;
using System.Linq;
using System.Xml;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SQLServerSample
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private const string strRelRoot = "https://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";
private void CreateDocument()
{
// Get the template document file and create a stream from it
const string DocumentFile = @"~/App_Data/CustomerLetterGenerator.docm";
// Read the file into memory
byte[] buffer = File.ReadAllBytes(Server.MapPath(DocumentFile));
MemoryStream memoryStream = new MemoryStream(buffer, true);
buffer = null;
// Open the document in the stream and replace the custom XML part
Package pkgFile = Package.Open(memoryStream, FileMode.Open, FileAccess.ReadWrite);
PackageRelationshipCollection pkgrcOfficeDocument = pkgFile.GetRelationshipsByType(strRelRoot);
foreach (PackageRelationship pkgr in pkgrcOfficeDocument)
{
if (pkgr.SourceUri.OriginalString == "/")
{
// Get the root part
PackagePart pkgpRoot = pkgFile.GetPart(new Uri("/" + pkgr.TargetUri.ToString(), UriKind.Relative));
// Add a custom XML part to the package
Uri uriData = new Uri("/customXML/item1.xml", UriKind.Relative);
if (pkgFile.PartExists(uriData))
{
// Delete document "/customXML/item1.xml" part
pkgFile.DeletePart(uriData);
}
// Load the custom XML data
PackagePart pkgprtData = pkgFile.CreatePart(uriData, "application/xml");
GetDataFromSQLServer(pkgprtData.GetStream(), ddlCustomer.SelectedValue);
}
}
// Close the file
pkgFile.Close();
// Return the result
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("content-disposition", "attachment; filename=CustomLetter.docx");
Response.ContentEncoding = System.Text.Encoding.UTF8;
memoryStream.WriteTo(Response.OutputStream);
memoryStream.Close();
Response.End();
}
private void GetDataFromSQLServer(Stream stream, string customerID)
{
// Connect to a SQL Server database and get data
String source = System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
const string SqlStatement =
"SELECT CompanyName, ContactName, ContactTitle, Phone FROM Customers WHERE CustomerID=@customerID";
using (SqlConnection conn = new SqlConnection(source))
{
conn.Open();
SqlCommand cmd = new SqlCommand(SqlStatement, conn);
cmd.Parameters.AddWithValue("@customerID", customerID);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
XmlWriter writer = XmlWriter.Create(stream);
writer.WriteStartElement("Customer");
writer.WriteElementString("CompanyName", (string)dr["CompanyName"]);
writer.WriteElementString("ContactName", (string)dr["ContactName"]);
writer.WriteElementString("ContactTitle", (string)dr["ContactTitle"]);
writer.WriteElementString("Phone", (string)dr["Phone"]);
writer.WriteEndElement();
writer.Close();
}
dr.Close();
conn.Close();
}
}
protected void SubmitBtn_Click(object sender, EventArgs e)
{
CreateDocument();
}
}
}
Weitere Informationen zum Arbeiten mit ASP.NET 2.0 finden Sie unter https://www.asp.net/get-started/.
In diesem Artikel wird erläutert, wie Sie Daten aus einer SQL Server-Datenbank extrahieren und in Ihr Vorlagendokument einfügen. Sie können die Daten auch aus anderen Datenquellen extrahieren, z. B. Access und Excel. Weitere Informationen zum programmgesteuerten Verbinden mit Daten in diesen Anwendungen finden Sie in der Access und Excel-Entwicklerdokumentation.
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.