NiTrOuS Posté(e) le 16 octobre 2006 Partager Posté(e) le 16 octobre 2006 Bonjour, je cherche un exemple d'upload / download de fichier vers une base de données SQL Server 2000 en C#. Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 17 octobre 2006 Auteur Partager Posté(e) le 17 octobre 2006 Comment enregistrer un fichier binaire en C# vers une base de données SQL server ? J'ai un fichier texte, je veux que mon programme c# le convertisse en binaire et ensuite fasse un INSERT dans ma BDD Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 19 octobre 2006 Auteur Partager Posté(e) le 19 octobre 2006 Voilà j'ai trouvé, il suffit d'utiliser les BLOB: Backup: FileStream FileStream1 = new FileStream(@PathAndName, FileMode.Open, FileAccess.Read); BinaryReader BinaryReader1 = new BinaryReader(FileStream1); byte[] FileToSave = BinaryReader1.ReadBytes((int)FileStream1.Length); SqlParameter ParameterSavedFile = Command.Parameters.Add("@ProcedureSavedFile",SqlDbType.Binary,FileToSave.Length,"SavedFile"); //Déclaration de la connexion à la DB en allant chercher les paramètres dans le fichier de configuration SqlConnection Connection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionParameter"]); //Déclaration de la fonction à exécuter SqlCommand Command = new SqlCommand(StoredProcedure,Connection); //Déclaration du type de fonction à exécuter Command.CommandType = CommandType.StoredProcedure; ParameterSavedFile.Value = FileToSave; //Ouverture de la connexion à la DB Connection.Open(); //Exécution de la procédure embarquée SqlDataReader Reader = Command.ExecuteReader(); //Fermeture du reader Reader.Close(); //Fermeture de la connexion à la DB Connection.Close(); //Fermeture du file stream FileStream1.Close(); //Fermeture du binary reader BinaryReader1.Close(); Restore: public void RestoreFile(int recordingid) { try { // Chaîne de connexion string ConnectString = ConfigurationSettings.AppSettings["ConnectionParameter"]; // Objet connection SqlConnection Connection = new SqlConnection(ConnectString); // Ouverture de la connexion Connection.Open(); SqlCommand Selection = new SqlCommand("SELECT SavedFile FROM Recording WHERE RecordingId = " + recordingid, Connection); FileStream FileStream1; BinaryWriter BinaryWriter1; int BufferSize = 100; byte[] OutByte = new byte[BufferSize]; long ReturnValue; long StartIndex = 0; SqlDataReader MyReader = Selection.ExecuteReader(CommandBehavior.SequentialAccess); while (MyReader.Read()) { // Création de fichier pour enregistrer ce qui est récupéré FileStream1 = new FileStream(@"C:\" + recordingid + ".txt",FileMode.OpenOrCreate, FileAccess.Write); BinaryWriter1 = new BinaryWriter(FileStream1); // Reset le byte de départ pour le nouveau BLOB StartIndex = 0; // Lecture des byte et conservation du nombre de byte retourné ReturnValue = MyReader.GetBytes(0, StartIndex, OutByte, 0, BufferSize); // Continue à lire et à écrire aussi longtemps qu'il y a de byte dans le buffer while (ReturnValue == BufferSize) { BinaryWriter1.Write(OutByte); BinaryWriter1.Flush(); // Repositionnement de l'index de début à la fin du dernier buffer et remplit le buffer StartIndex += BufferSize; ReturnValue = MyReader.GetBytes(0, StartIndex, OutByte, 0, BufferSize); } // Ecriture du buffer restant BinaryWriter1.Write(OutByte, 0, (int)ReturnValue); BinaryWriter1.Flush(); // Fermeture du fichier de sortie BinaryWriter1.Close(); FileStream1.Close(); } // Fermeture du reader MyReader.Close(); // Fermeture de la connexion Connection.Close(); } catch(Exception ex) { Console.Error.WriteLine(ex); } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.