0
Je suis enregistrement d'une image dans la base de données avec byte[]
propriété comme ceci:Comment convertir.ToByte [] lecteur sql?
ProfileModel:
private byte[] _imageData;
public byte[] ImageData
{
get
{
return _imageData;
}
set
{
_imageData = value;
}
}
Quand je suis en train de lire l'image que j'ai problème avec la conversion de l'octet. Je ne sais pas comment convertir le lecteur en byte[]
. Je pensais que c'est assez pour convertir.ToByte, mais ça ne marche pas.
ThreadModel:
private byte _imageData;
public byte ImageData
{
get
{
return _imageData;
}
set
{
_imageData = value;
}
}
Sa ma méthode où je suis en train de lire des informations d'image:
cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = @"SELECT ImageData, "
+ " ContentType, "
+ " ImageName "
+ " FROM UsersImage "
+ " WHERE UserName = @UserName ";
cmd.Parameters.AddWithValue("@UserName", ThreadUserName);
reader = cmd.ExecuteReader();
if (reader.Read())
{
if (reader["ContentType"] != DBNull.Value)
{
ContentType = Convert.ToString(reader["ContentType"]);
}
if (reader["ImageName"] != DBNull.Value)
{
ImageName = Convert.ToString(reader["ImageName"]);
}
if (reader["ImageData"] != DBNull.Value)
{
ImageData = Convert.ToByte(reader["ImageData"]);
}
int affectedRows = cmd.ExecuteNonQuery();
if (affectedRows != 1)
{
}
}
reader.Close();
Je dois juste faire cela à et, ou? ImageData = lecteur.GetBytes (lecteur.GetOrdinal ("ImageData"), 0, buffer, 0, int.MaxValue); –
Non, vous devez ajouter "ImageData = buffer;", reader.GetBytes (...) renvoie le nombre d'octets écrits dans "buffer". –
oui, mais mon ImageData est de type octet adn tampon est encore de byte []. alors c'est toujours le même problème que précédemment. –