2009-10-04 4 views
8

Je fais une petite application mvc asp.net. dans lequel je dois calculer les données de plusieurs fichiers CSV (entre 5 et 10 fichiers).Quelle est la meilleure façon de stocker des fichiers texte dans une base de données Sql Server, pour une application web asp.net mvc?

L'application doit fournir des actions de téléchargement et de téléchargement pour ces fichiers.

La partie où je n'ai pas d'expérience est la base de données. Quel type de colonne dois-je utiliser? texte, image, binaire? la taille d'un fichier sera comprise entre 80KB et 500KB

+0

Vous en train d'essayer de stocker le fichier entier comme une entité dans la base de données, ou voulez-vous simplement de télécharger les données dans le fichier csv dans une table? – flayto

+0

Je veux stocker le fichier en tant qu'entité. – andreiursan

Répondre

11

Les types TEXT, NTEXT et IMAGE sont obsolètes - ne les utilisez pas pour un nouveau développement. Ils seront définitivement supprimés d'une future version de SQL Server. Pour SQL Server 2005 et versions ultérieures, utilisez VARCHAR(MAX)/NVARCHAR(MAX) si vous utilisez des fichiers texte purs (comme le code source ou des fichiers CSV) ou VARBINARY(MAX) si vous utilisez des fichiers binaires. Ceux-ci autorisent jusqu'à 2 Go de stockage pour chaque fichier, et vous pouvez utiliser toutes les fonctions habituelles des chaînes T-SQL pour les manipuler (les champs (N) VARCHAR (MAX), c'est-à-dire).

Si vous utilisez SQL Server 2008, il existe également une option supplémentaire - l'attribut FILESTREAM sur les colonnes VARBINARY(MAX). Cela vous permet de stocker les fichiers dans le système de fichiers de la machine SQL Server (au lieu des tables de base de données) tout en préservant l'intégrité transactionnelle et des données. FILESTREAM est recommandé pour les fichiers dont la taille est généralement supérieure ou égale à 1 Mo ou si vous avez besoin de plus de 2 Go (car vous ne pouvez pas stocker plus de 2 Go dans une colonne VARBINARY(MAX)).

Marc

+2

Mentionnez les types FILESTREAM sans limite afin qu'ils soient complets. – whatnick

+0

Merci à tous! Résolu, je suppose que je vais utiliser FILESTREAM. – andreiursan

Questions connexes