读取sql库里image类型的数据。在一类里读取image类型数据,字段g-pic是image类型的
   g_pic= (byte[])sqlDataReader["g_pic"];
private byte[] m_g_pic;       
 public byte[] g_pic
{
get
{
return m_g_pic;
} set
{
m_g_pic = value;
}
}
错误提示说:类型转换错误  ,应该怎么转换,

解决方案 »

  1.   

    这是类库里的调用方法 别的属性都正常 ,到读取image类型就错误了
    --------------------------------
    public bool View(int Gid)
    {
    SqlDataReader sqlDataReader = null;
    bool flag1 = false;
    string strconn=ConfigurationSettings.AppSettings["DSN"];
    string strSql = "SELECT * FROM gc WHERE id=@Gid";
    SqlParameter sqlParameter = new SqlParameter("@Gid",Gid);
    sqlParameter.Direction = ParameterDirection.Input;
    sqlParameter.DbType = DbType.String;
    try
    {
    sqlDataReader = SqlHelper.ExecuteReader(strconn,CommandType.Text,strSql,new SqlParameter[]{sqlParameter});
    if (sqlDataReader.Read())
    {
    flag1 = true;
    Gid=Gid;
    g_ename = sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_ename"));
    g_cname= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_cname"));
    g_addree= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_addree"));
    g_tel= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_tel"));
    g_engry= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_engry"));
    g_mcp= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_mcp"));
    g_oldname= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_oldname"));
    g_man= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_man"));
    g_intro= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_intro"));
             g_pic= (byte[])sqlDataReader["g_pic"];
    g_picSize = Convert.ToInt32(sqlDataReader.GetOrdinal("picSize"));
    g_picType= sqlDataReader.GetString(sqlDataReader.GetOrdinal("g_picType"));

    }
    sqlDataReader.Close();
    return flag1;
    }
    catch (SqlException e)
    {
    throw e;
    }
    }
    #endregion
      

  2.   

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;309158
      

  3.   

    也一样啊
    MyData =  (byte[])myRow["imgField"];
    唯一不同的是他指定了byte[] MyData= new byte[0];
    我以前没把读图片放到类库里的时候是直接读取
    Response.Clear();
    Response.ContentType=dr["ImageType"].ToString();
    Response.BinaryWrite((byte[])dr["ImageData"]);
    可放到类库里了,设置读取器就不对了 难道需要设置byte[]的大小?