Cet article se rapporte à l'espace de noms de la bibliothèque de classes Microsoft .NET Framework suivant :
-
System.data.sqlclient
-
System.io
-
System.Text
DANS CETTE TÂCHE
Résumé
Cet article pas à pas explique comment créer dynamiquement un fichier texte délimité par des tabulations à partir d’une base de données. Vous pouvez ensuite ouvrir le fichier dans Microsoft Excel. L’exemple de code de cet article montre comment se connecter à une base de données Microsoft SQL Server, retourner un jeu de données à partir de la base de données Pubs, puis créer un fichier texte délimité par des tabulations avec les données.
Générer l’exemple de code
Cet exemple crée un exemple ASP.NET page Visual C# .NET nommé ExcelCS.aspx. Cette page se connecte à la base de données pubs SQL Server et utilise l’objet FileStream pour renvoyer les informations à un fichier texte délimité par des tabulations. La page ASP.NET affiche ensuite un lien vers le fichier .xls que vous avez créé pour illustrer la sortie du code.
-
Démarrez Microsoft Visual Studio .NET.
-
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
-
Dans la boîte de dialogue Nouveau projet, sous Types de projets, cliquez sur Projets Visual C#. Sous Modèles, cliquez sur ASP.NET’application web.
-
Dans la zone Emplacement, tapez le nom du serveur et le nom du projet au format suivant :
http:// ServerName/Project Name Dans cet exemple, nommez le projetExcelCSTest. Si vous utilisez le serveur local, vous pouvez laisser le nom du serveur commehttp://localhost.
-
Faites glisser un contrôle HyperLink de la boîte à outils vers le fichier WebForm1.aspx.
-
Cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Afficher le code pour afficher la source de la page code-behind.
-
Ajoutez les instructions suivantes en haut de la page code-behind :
using System.Data.SqlClient;using System.IO;using System.Text;
-
Dans la page code-behind de WebForm1.aspx, ajoutez le code suivant à l’événement 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;
-
Modifiez le chaîne de connexion (SqlConnection) si nécessaire pour votre environnement.
-
Dans le menu Fichier, cliquez sur Enregistrer tout pour enregistrer les fichiers projet.
-
Dans le menu Générer de l’environnement de développement intégré (IDE) Visual Studio .NET, cliquez sur Générer la solution pour générer le projet.
-
Dans l’environnement de développement intégré Visual Studio .NET Explorateur de solutions, cliquez avec le bouton droit sur WebForm1.aspx, puis cliquez sur Afficher dans le navigateur pour exécuter le code.
Dépannage
-
Vous devez modifier le chaîne de connexion dans l’exemple de code pour qu’il corresponde à votre environnement.
-
Vous devrez peut-être augmenter les autorisations pour le processus aspnet_wp (dans Microsoft Windows 2000 et Microsoft Windows XP) ou le processus w3wp (dans Microsoft Windows Server 2003) pour permettre l’écriture du fichier. Pour plus d’informations, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
317012 INFO : Traiter et demander l’identité dans ASP.NET