怎样用代码来实现将图片信息以二进制的形势存储到数据库中?

解决方案 »

  1.   

    Byte[] bt = new byte[10000];
    MemoryStream ms = new MemoryStream();
    Image img = Image.FromFile("");
    img.Save(ms,ImageFormat.Jpeg);
    ms.Read(bt,0,10000); sqlCommand.paremeter["img"].value = bt;
      

  2.   

    System.Data.SqlClient.SqlCommand cmd = new SqlCommand()
    cmd.Connection = (System.Data.SqlClient.SqlConnection)this.conn.SerConnection;
    cmd.Connection.Open();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "XXXXX";cmd.Parameters.Add("str",str);
    cmd.Parameters.Add("@pic1", SqlDbType.Binary);
    cmd.Parameters["@pic1"].Value = rst.dataTable.Rows[row]["pic1"] as Byte[];SqlDataReader reader = cmd.ExecuteReader();绝对可以用.
      

  3.   

    这是我写的存在Access数据库里的ASP。net+C#(增加了图片大小变化),另在孟子E章中有存到sql中的写法
    private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
    System.Web.HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
    if (files.Count>0)
    {

    System.Web.HttpPostedFile postedFile = files[0];
    string fileName,fileExtention ;
    fileName = System.IO.Path.GetFileName(postedFile.FileName);
    fileExtention = System.IO.Path.GetExtension(fileName).ToUpper();
    if (fileExtention.Trim()==".GIF"||fileExtention.Trim()==".JPG"||fileExtention.Trim()==".JPEG")
    {
    System.Drawing.Image image=System.Drawing.Image.FromStream(postedFile.InputStream);
    int nWidth;
    int nHeight;
    if (image.Height/image.Width>0.75)
    {
    if (image.Height>300)
    {
    nHeight=300;
    nWidth=(int)(image.Width * 300 / image.Height);
    }
    else
    {
    nWidth=image.Width;
    nHeight=image.Height;
    }
    }
    else
    {
    if (image.Width>400)
    {
    nWidth=400;
    nHeight=(int)(image.Height * 400 / image.Width);
    }
    else
    {
    nWidth=image.Width;
    nHeight=image.Height;
    }
    }
    System.Drawing.Bitmap myBitmap=new Bitmap(nWidth,nHeight);
    System.Drawing.Graphics g=System.Drawing.Graphics.FromImage(myBitmap);
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
    g.DrawImage( image, new Rectangle( 0, 0, nWidth, nHeight ),0, 0, image.Width, image.Height, GraphicsUnit.Pixel );
    g.Dispose();
    //System.Drawing.Image thumbImage = image.GetThumbnailImage(nWidth,nHeight,null,System.IntPtr.Zero);

    System.IO.MemoryStream imageStream;
    imageStream=new System.IO.MemoryStream();

    myBitmap.Save(imageStream,image.RawFormat);

    int intLength=Convert.ToInt32(imageStream.Length);
                
    byte[] fileData = new byte[intLength];
    fileData=imageStream.ToArray();
    //imageStream.Read(fileData,0,intLength);
    // Response.Write(fileData[0].ToString()+"<br>" +intLength.ToString());

    OleDbConnection oleConn;
    string oleConnString;
    ClassYeleo myClass;
    myClass=new ClassYeleo();
    oleConnString=myClass.GetPubCode();
    //oleConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath + "/datadase_mydb/") + "db.mdb";
    oleConn = new OleDbConnection(oleConnString);
    System.Data.OleDb.OleDbCommand insertCmd;
    insertCmd=new OleDbCommand ("INSERT INTO DBOS_Sl (DBOS_Sl_Type,DBOS_Father_ID,DBOS_Sl_Qtype,DBOS_Sl_Data,DBOS_Sl_Qty)" + 
    "VALUES (@Sl_Type,@Father_ID,@Sl_Qtype,@Sl_Data,@Sl_Qty)", oleConn);
    System.Data.OleDb.OleDbParameter pSl_Type = new OleDbParameter("@Sl_Type", System.Data.OleDb.OleDbType.VarChar,10);
    pSl_Type.Value="image";
    insertCmd.Parameters.Add(pSl_Type); System.Data.OleDb.OleDbParameter pSl_Father_ID = new OleDbParameter("@Father_ID",System.Data.OleDb.OleDbType.Integer);
    pSl_Father_ID.Value=123;
    insertCmd.Parameters.Add(pSl_Father_ID); System.Data.OleDb.OleDbParameter pSl_Qtype=new OleDbParameter("@Sl_Qtype",System.Data.OleDb.OleDbType.VarChar,4);
    pSl_Qtype.Value=image.RawFormat.ToString();
    insertCmd.Parameters.Add(pSl_Qtype); System.Data.OleDb.OleDbParameter pSl_Data = new OleDbParameter("@Sl_Data",System.Data.OleDb.OleDbType.VarBinary);
    pSl_Data.Value=fileData;
    insertCmd.Parameters.Add(pSl_Data); System.Data.OleDb.OleDbParameter pSl_Qty = new OleDbParameter("@Sl_Qty",System.Data.OleDb.OleDbType.Boolean);
    pSl_Qty.Value=false;
    insertCmd.Parameters.Add(pSl_Qty); oleConn.Open();
    insertCmd.ExecuteNonQuery();
    if (oleConn.State == ConnectionState.Open)
    {
    oleConn.Close();
    }
    Response.Write("<body onload=window.alert('数据提交成功!"+intLength.ToString() +"');></body>"); 
    //Response.BinaryWrite(fileData);
    // System.IO.MemoryStream myNewStream;
    // myNewStream=new System.IO.MemoryStream();
    // myNewStream.Write(fileData,0,fileData.Length);
    // System.Drawing.Image myNewImag;
    // myNewImag=System.Drawing.Image.FromStream(myNewStream);
    // myNewImag.Save(Response.OutputStream,myNewImag.RawFormat);


    //  thumbImage.Save(Response.OutputStream,image.RawFormat);
    }
    else
    {
    Response.Write("<body onload=window.alert('图处只能是Gif/Jpeg/Jpg格式!');></body>"); 
    }
    }
    }