récupérer des données varbinary datafield de SQLdatabase
je suis le stockage de fichiers dans la base de données et c'est le code je l'utilise et il fonctionne en ajoutant les données, mais maintenant je veux le récupérer en arrière. comment puis-je le faire?
string filename = FileUploader.PostedFile.FileName;
string filecontent = FileUploader.PostedFile.ContentType;
int filesize = FileUploader.PostedFile.ContentLength;
string filepath = System.IO.Path.GetFileName(filename);
FileUploader.PostedFile.SaveAs("c:\\try\\" + filepath);
byte[] fileData = new byte[FileUploader.PostedFile.ContentLength];
FileUploader.PostedFile.InputStream.Read(fileData, 0, fileData.Length);
string originalName = Path.GetFileName(FileUploader.PostedFile.FileName);
con.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["FAQ"].ToString();
con.Open();
using (SqlCommand cmd = new SqlCommand("INSERT INTO Files(FileData) VALUES (@binaryValue)", con))
{
//Replace 8000, below, with the correct size of the field
cmd.Parameters.Add("@binaryValue", SqlDbType.VarBinary, fileData.Length).Value = fileData;
cmd.ExecuteNonQuery();
con.Close();
}
OriginalL'auteur Ahmad Farid | 2009-07-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
SqlDataReader
pour obtenir la valeur, etBinaryWriter
pour créer le fichier, comme ceci:Il y a une erreur à la ligne byte[] fileData = (byte[]) sqlRead[0].Valeur; SqlDataReader n'ont pas de "Valeur" de la méthode à appeler!
fileCreate.Écrire(fileDate) doit être fileCreate.Écrire(fileData)
OriginalL'auteur Eric