Dieser Artikel bezieht sich auf die folgenden Namespaces aus der Microsoft .NET Framework-Klassenbibliothek:
-
System.data.sqlclient
-
System.io
-
System.Text
INHALT
Zusammenfassung
In diesem Schritt-für-Schritt-Artikel wird beschrieben, wie Sie dynamisch eine Textdatei mit Tabstopptrennzeichen aus einer Datenbank erstellen. Anschließend können Sie die Datei in Microsoft Excel öffnen. Der Beispielcode in diesem Artikel veranschaulicht, wie Sie eine Verbindung mit einer Microsoft SQL Server-Datenbank herstellen, einen Satz von Daten aus der Pubs-Datenbank zurückgeben und dann eine durch Tabstopp getrennte Textdatei mit den Daten erstellen.
Erstellen des Beispielcodes
In diesem Beispiel wird ein Beispiel ASP.NET Visual C# .NET-Seite mit dem Namen ExcelCS.aspx erstellt. Diese Seite stellt eine Verbindung mit der SQL Server Pubs-Datenbank her und verwendet das FileStream-Objekt, um die Informationen an eine durch Tabstopps getrennte Textdatei zurückzugeben. Auf der Seite ASP.NET wird dann ein Link zu der .xls Datei angezeigt, die Sie erstellt haben, um die Ausgabe des Codes zu veranschaulichen.
-
Starten Sie Microsoft Visual Studio .NET.
-
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
-
Klicken Sie im Dialogfeld Neues Projekt unter Projekttypen auf Visual C#-Projekte. Klicken Sie unter Vorlagen auf ASP.NET Webanwendung.
-
Geben Sie im Feld Speicherort den Servernamen und den Projektnamen im folgenden Format ein:
http:// ServerName/Projektname In diesem Beispiel nennen Sie das ProjektExcelCSTest. Wenn Sie den lokalen Server verwenden, können Sie den Servernamen alshttp://localhost belassen.
-
Ziehen Sie ein HyperLink-Steuerelement aus der Toolbox in die WebForm1.aspx Datei.
-
Klicken Sie mit der rechten Maustaste auf WebForm1.aspx, und klicken Sie dann auf Code anzeigen, um die Quelle der CodeBehind-Seite anzuzeigen.
-
Fügen Sie oben auf der CodeBehind-Seite die folgenden -Anweisungen hinzu:
using System.Data.SqlClient;using System.IO;using System.Text;
-
Fügen Sie auf der CodeBehind-Seite von WebForm1.aspx den folgenden Code zum Page_Load-Ereignis hinzu:
//You use these variables throughout the application.string fileExcel, filePath, fileName, strLine, sql;FileStream objFileStream;StreamWriter objStreamWriter;Random nRandom = new Random(DateTime.Now.Millisecond);SqlConnection cnn = new SqlConnection("server=(local);database=pubs;Integrated Security=SSPI"); //Create a random file name.fileExcel = "t" + nRandom.Next().ToString() + ".xls";//Set a virtual folder to save the file.//Make sure to change the application name to match your folder.filePath = Server.MapPath("\\ExcelCSTest");fileName = filePath + "\\" + fileExcel;//Use FileSystem objects to create the .xls file.objFileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write); objStreamWriter = new StreamWriter(objFileStream); //Use a DataReader object to connect to the Pubs database.cnn.Open();sql = "select au_id,au_lName,au_fname,phone,address,city,state,zip,contract from authors"; SqlCommand cmd = new SqlCommand(sql, cnn); SqlDataReader dr; dr = cmd.ExecuteReader();//Initialize the string that is used to build the file.strLine = "";//Enumerate the field names and the records that are used to build //the file.for (int i = 0; i <= dr.FieldCount-1; i++) { strLine = strLine + dr.GetName(i).ToString() + Convert.ToChar(9); }//Write the field name information to the file.objStreamWriter.WriteLine(strLine);//Reinitialize the string for data.strLine = "";//Enumerate the database that is used to populate the file.while (dr.Read()) { for (int i = 0; i <= dr.FieldCount-1; i++) { strLine = strLine + dr.GetValue(i).ToString() + Convert.ToChar(9); } objStreamWriter.WriteLine(strLine); strLine=""; }//Clean up.dr.Close();cnn.Close();objStreamWriter.Close();objFileStream.Close();//Include a link to the Excel file.HyperLink1.Text="Open Excel";HyperLink1.NavigateUrl=fileExcel;
-
Ändern Sie die Verbindungszeichenfolge (SqlConnection) nach Bedarf für Ihre Umgebung.
-
Klicken Sie im Menü Datei auf Alle speichern, um die Projektdateien zu speichern.
-
Klicken Sie im Menü Erstellen in der integrierten Entwicklungsumgebung (IDE) von Visual Studio .NET auf Projektmappe erstellen, um das Projekt zu erstellen.
-
Klicken Sie in visual Studio .NET Integrated Development Environment Projektmappen-Explorer mit der rechten Maustaste auf WebForm1.aspx, und klicken Sie dann auf Im Browser anzeigen, um den Code auszuführen.
Problembehandlung
-
Sie müssen die Verbindungszeichenfolge im Codebeispiel an Ihre Umgebung anpassen.
-
Möglicherweise müssen Sie die Berechtigungen für den aspnet_wp-Prozess (in Microsoft Windows 2000 und in Microsoft Windows XP) oder den w3wp-Prozess (in Microsoft Windows Server 2003) erhöhen, damit die Datei geschrieben werden kann. Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:
317012 INFO: Verarbeiten und Anfordern der Identität in ASP.NET