Je construis une application de bureau C # et je dois enregistrer le fichier dans la base de données. J'ai proposé un personnage de fichiers qui me donne le chemin correct du fichier. Maintenant, j'ai une question à savoir comment enregistrer ce fichier dans la base de données en utilisant son chemin. p>
5 Réponses :
Cela dépend vraiment du type et de la taille du fichier. Si c'est un fichier texte, vous pouvez utiliser Si ce n'est pas un fichier texte, vous pouvez utiliser Soyez prudent, les bases de données ne sont pas un excellent moyen de stocker des fichiers lourds (vous rencontrez des problèmes de performance). P> fichier.readalltext () code> pour obtenir une chaîne que vous pouvez enregistrer dans votre base de données. P>
fichier.readallbytes () code> pour obtenir les données binaires du fichier, puis enregistrer cela dans votre base de données. P>
Vous auriez besoin du fichier dans une matrice d'octet, puis de le stocker comme un champ de blob dans la base de données possible avec le nom que vous souhaitiez donner le fichier et le type de fichier. P>
Vous pouvez simplement inverser le processus pour mettre le fichier à nouveau. P>
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); int numBytes = new FileInfo(fileName).Length; byte[] buff = br.ReadBytes(numBytes); Then you upload it to the DB like anything else, I'm assume you are using a varbinary column (BLOB)
-1 Toute solution qui propose de charger un fichier entier dans un octet [] mérite un bowvote dans mon livre
@RemusRUSANU et quelle solution suggéreriez-vous dans ce cas?
Si vous utilisez SQL Server 2008, vous pouvez utiliser FileStream A> (Guide de mise en route ici ). Un exemple d'utilisation de cette fonctionnalité de C # est ici . P >
SO FILESTREM serait-il, mais que vous utilisez SQL 2K5, vous devrez le faire dans la mémoire de la mémoire; qui consomme beaucoup de ressources.
premier de la colonne Type de Varcharchar (Max) est votre ami que cela vous donne ~ 2 Go de données à jouer avec, qui est assez gros pour la plupart des utilisations. P>
Suivant Lisez le données dans un tableau d'octet et convertissez-la en une base644string p> et inverser le processus pour récupérer p> vous Voulez-vous disposer de ces chaînes le plus rapidement possible en les définissant à String.empty dès que vous avez fini de les utiliser! p> Mais si vous le pouvez, il suffit de passer à 2008 et d'utiliser filtream. P> p>
Quelle version de SQL Server utilisez-vous?
Veuillez ne pas utiliser le nom ou la balise "MSSQL". Il n'y a pas de tel produit, et l'utilisation de ceux-ci rend plus difficile la recherche de votre question plus tard.