Van toepassing op
Excel

Dit artikel verwijst naar de volgende Microsoft .NET Framework Class Library-naamruimten:

  • System.Data.SqlClient

  • System.IO

  • System.Text

IN DEZE TAAK

Samenvatting

In dit stapsgewijze artikel wordt beschreven hoe u dynamisch een door tabs gescheiden tekstbestand maakt op basis van een database. U kunt het bestand vervolgens openen in Microsoft Excel. De voorbeeldcode in dit artikel laat zien hoe u verbinding maakt met een Microsoft SQL Server-database, een set gegevens uit de pubs-database retourneert en vervolgens een door tabs gescheiden tekstbestand maakt met de gegevens.

De voorbeeldcode bouwen

In dit voorbeeld wordt een voorbeeld ASP.NET Visual C# .NET-pagina met de naam ExcelCS.aspx gemaakt. Deze pagina maakt verbinding met de database SQL Server Pubs en gebruikt het object FileStream om de informatie te retourneren naar een tekstbestand met tabscheidingstekens. Op de pagina ASP.NET wordt vervolgens een koppeling weergegeven naar het .xls-bestand dat u hebt gemaakt om de uitvoer van de code te demonstreren.

  1. Start Microsoft Visual Studio .NET.

  2. Wijs in het menu Bestand de optie Nieuw aan en klik vervolgens op Project.

  3. Klik in het dialoogvenster Nieuw project onder Projecttypen op Visual C#-projecten. Klik onder Sjablonen op ASP.NET webtoepassing.

  4. Typ in het vak Locatie de servernaam en de projectnaam in de volgende indeling:

    http:// ServerName/Projectnaam In dit voorbeeld geeft u het projectde naam ExcelCSTest. Als u de lokale server gebruikt, kunt u de servernaam alshttp://localhost laten.

  5. Sleep een HyperLink-besturingselement van de werkset naar het WebForm1.aspx-bestand.

  6. Klik met de rechtermuisknop op WebForm1.aspx en klik vervolgens op Code weergeven om de code achter de paginabron weer te geven.

  7. Voeg de volgende instructies toe aan de bovenkant van de pagina met codeachter:

    using System.Data.SqlClient;using System.IO;using System.Text;
  8. Voeg op de code-achterpagina van WebForm1.aspx de volgende code toe aan de gebeurtenis 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;
  9. Wijzig de verbindingsreeks (SqlConnection) indien nodig voor uw omgeving.

  10. Klik in het menu Bestand op Alles opslaan om de projectbestanden op te slaan.

  11. Klik in het menu Bouwen in Visual Studio .NET Integrated Development Environment (IDE) op Oplossing bouwen om het project te bouwen.

  12. Klik in visual Studio .NET Integrated Development Environment Solution Explorer met de rechtermuisknop op WebForm1.aspx en klik vervolgens op Weergeven in browser om de code uit te voeren.

Probleemoplossing

  • U moet de verbindingsreeks in het codevoorbeeld aanpassen aan uw omgeving.

  • Mogelijk moet u de machtigingen voor het aspnet_wp proces (in Microsoft Windows 2000 en in Microsoft Windows XP) of het w3wp-proces (in Microsoft Windows Server 2003) vergroten om het bestand te kunnen schrijven. Klik voor meer informatie op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:

    317012 INFO: Identiteit verwerken en aanvragen in ASP.NET

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.