开发者

How to Convert.ToByte[] sql reader?

I am saving a image into database with byte[] property like this:

ProfileModel:

private byte[] _imageData;

public byte[] ImageData
{
    get
    {
        return _imageData;
    }
    set
    {
        _imageData = value;
    }
}

When I am trying to read image i have problem with converting of byte. I dont know how to convert reader into byte[]开发者_JAVA技巧. I thought that its enough to convert.ToByte, but it doesnt works.

ThreadModel:

private byte _imageData;
public byte ImageData
{
    get
    {
        return _imageData;
    }
    set
    {
        _imageData = value;
    }
}

Its my method where I am reading image information:

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();


byte[] buffer = new byte[reader.GetBytes(reader.GetOrdinal("ImageData"), 0, null, 0, int.MaxValue)];
reader.GetBytes(reader.GetOrdinal("ImageData"), 0, buffer, 0, int.MaxValue);

Might work, untested though.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜