seeC# Photo Album Viewer
http://www.codeproject.com/cs/database/albumviewer.asp

解决方案 »

  1.   

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

  2.   

    public void Add(System.Web.HttpPostedFile PostFile,string TableName,string PicField,string PicTypeFiled,string PicSizeField,string AddCondition)
    {
    string FileType=PostFile.ContentType;
    Int32 FileLength=PostFile.ContentLength;
    Byte[] FileByteArray = new Byte[FileLength];   
    Stream StreamObject = PostFile.InputStream;     
    StreamObject.Read(FileByteArray,0,FileLength); 
       System.Web.HttpContext.Current.Response.End(); string strSQL=" Update " + TableName + " set " + PicField + "=@Image,"+ PicTypeFiled + "=@ContentType," + PicSizeField + "=@ImageSize where 1=1 And " + AddCondition;
    if (isSQLDataBase)
    {
    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
    {
    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();
    }
    }