Q317670 HOW TO: Copy Picture from Database Directly to PictureBox in VB
http://support.microsoft.com/support/kb/articles/q317/6/70.asp

解决方案 »

  1.   

    string strFile = "C:\\1.jpg";
    FileStream fs = new FileStream(strFile, FileMode.Open, FileAccess.Read);
    byte[] bytes = new byte[(int)fs.Length];
    fs.Read(bytes, 0, bytes.Length);
    fs.Close();SqlConnection conn = 
         new SqlConnection("server=pany;database=pany;uid=sa;pwd=123");
    SqlCommand cmd = 
         new SqlCommand("insert into t_imgs (imgData) values (@imgData)", conn);
    cmd.Parameters.Add("@imgData", SqlDbType.Binary, bytes.Length).Values = bytes;
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
      

  2.   

    有个办法
    根本不要 放入 图片 文件  这样 慢只要存入 图片的 路径 就可以了
    然后让 系统自己找 图片
    如<img src='<%# GetImage() %>'>
    注 GetImage()是  自己建立的函数  目的是返回  存在数据库 里面的路径
    我像 GetImage()这种函数 因该会写的 吧
      

  3.   

    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=2A5DD7C6-A45A-48AB-A2E8-342A29F17506http://xml.sz.luohuedu.net/xml/Content.asp
      

  4.   

    /// <summary>
    /// 添加图片到指定的数据表
    /// </summary>
    /// <param name="PostFile">上传图片的流</param>
    /// <param name="TableName">数据表名称</param>
    /// <param name="PicField">图片字段名称</param>
    /// <param name="PicTypeFiled">图片类型字段名称</param>
    /// <param name="PicSizeField">图片大小字段名称</param>
    /// <param name="AddCondition">上传此图片的SQL条件(IE:UserID=1)</param>
    public void AddPicture(System.Web.HttpPostedFile PostFile,string TableName,string PicField,string PicTypeFiled,string PicSizeField,string AddCondition)
    {
    if(PostFile==null)
    throw new myException("上传文件的流不能够为空!");
    //文件类型
    string FileType=PostFile.ContentType;
    //文件大小
    Int32 FileLength=PostFile.ContentLength;
    //图象文件临时储存Byte数组
    Byte[] FileByteArray = new Byte[FileLength];   
    //建立数据流对像
    Stream StreamObject = PostFile.InputStream;     
    //读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
    StreamObject.Read(FileByteArray,0,FileLength); 
       System.Web.HttpContext.Current.Response.End(); //生SQL语句
    string strSQL=" Update " + TableName + " set " + PicField + "=@Image,"+ PicTypeFiled + "=@ContentType," + PicSizeField + "=@ImageSize where 1=1 And " + AddCondition;
    //判断是否为SQLServer数据库
    if (isSQLDataBase)
    {
    //此处为SQLServer数据库的处理
    SqlConnection ObjConn=new SqlConnection(Connectionstring);
    ObjConn.Open();
    SqlCommand ObjComm=new SqlCommand(strSQL,ObjConn);
    //添加参数
    ObjComm.Parameters.Add("@Image",System.Data.SqlDbType.Binary,FileLength).Value = FileByteArray;
    ObjComm.Parameters.Add("@ContentType",SqlDbType.VarChar,20).Value = FileType;
    ObjComm.Parameters.Add("@ImageSize", SqlDbType.Decimal,9).Value = FileLength;
    ObjComm.ExecuteNonQuery();
    ObjConn.Close();
    }
    else
    {
    //此处为其他数据的处理,如Oracle
    OleDbConnection ObjConn=new OleDbConnection(Connectionstring);
    ObjConn.Open();
    OleDbCommand ObjComm=new OleDbCommand(strSQL,ObjConn); 
    ObjComm.Parameters.Add("@Image",System.Data.OleDb.OleDbType.Binary,FileLength).Value = FileByteArray;
    ObjComm.Parameters.Add("@ContentType",System.Data.OleDb.OleDbType.VarChar,20).Value = FileType;  //记录文件类型
    ObjComm.Parameters.Add("@ImageSize",System.Data.OleDb.OleDbType.Numeric,9).Value = FileLength;
    ObjComm.ExecuteNonQuery();
    ObjConn.Close();
    }
    }