Den här artikeln refererar till följande Namnområden för Microsoft .NET Framework Klassbibliotek:
-
System.Data.SqlClient
-
System.io
-
System.Text
I DEN HÄR UPPGIFTEN
Sammanfattning
I den här stegvisa artikeln beskrivs hur du skapar en tabbabbgränsad textfil dynamiskt från en databas. Du kan sedan öppna filen i Microsoft Excel. Exempelkoden i den här artikeln visar hur du ansluter till en Microsoft-SQL Server-databas, returnerar en uppsättning data från Pubs-databasen och sedan skapar en tabbaverad textfil med data.
Skapa exempelkoden
I det här exemplet skapas en exempelsida ASP.NET Visual C# .NET med namnet ExcelCS.aspx. Den här sidan ansluter till SQL Server Pubs-databasen och använder FileStream-objektet för att returnera informationen till en tabbaverad textfil. På sidan ASP.NET visas sedan en länk till den .xls fil som du har skapat för att visa kodens utdata.
-
Starta Microsoft Visual Studio .NET.
-
Peka på Nytt på Arkiv-menyn och klicka sedan på Projicera.
-
Klicka på Visual C# Projekt under Projekttyper i dialogrutan Nytt projekt. Klicka på ASP.NET webbprogram under Mallar.
-
I rutan Plats skriver du servernamnet och projektnamnet i följande format:
http:// ServerName/Projektnamn I det här exemplet namnger du projektetExcelCSTest. Om du använder den lokala servern kan du lämna servernamnet somhttp://localhost.
-
Dra en HyperLink-kontroll från verktygslådan till den WebForm1.aspx filen.
-
Högerklicka på WebForm1.aspx och klicka sedan på Visa kod för att visa sidkällan bakom koden.
-
Lägg till följande uttryck högst upp på sidan med kod bakom:
using System.Data.SqlClient;using System.IO;using System.Text;
-
På sidan med kod bakom WebForm1.aspx lägger du till följande kod i händelsen Page_Load:
//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;
-
Ändra anslutningssträng (SqlConnection) efter behov för miljön.
-
Spara projektfilerna genom att klicka på Spara alla på Arkiv-menyn.
-
På menyn Skapa i Visual Studio .NET Integrated Development Environment (IDE) klickar du på Build Solution för att skapa projektet.
-
I Visual Studio .NET Integrated Development Environment Solution Explorer högerklickar du på WebForm1.aspx och klickar sedan på Visa i webbläsare för att köra koden.
Felsökning
-
Du måste ändra anslutningssträng i kodexemplet för att matcha miljön.
-
Du kan behöva öka behörigheterna för aspnet_wp processen (i Microsoft Windows 2000 och i Microsoft Windows XP) eller w3wp-processen (i Microsoft Windows Server 2003) för att filen ska kunna skrivas. Om du vill ha mer information klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:
317012 INFO: Bearbeta och begära identitet i ASP.NET