c#.net中,怎么实现将图片保存到数据库中?
用picturebox控件,双击后把图片保存到数据库中,然后再显示!!

解决方案 »

  1.   

    http://www.cnblogs.com/jhtchina/articles/178129.html
      

  2.   

    /// <summary>
            /// File -> DB
            /// </summary>
            /// <param name="file"></param>
            /// <returns></returns>
            public static bool File2DB(string file)
            {
                try
                {                // 文件名 -> byte[]
                    FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
                    byte[] data = new byte[fs.Length];
                    fs.Read(data, 0, (int)fs.Length);                fs.Close();                SqlConnection db = new SqlConnection(strConn);                string strSQL = "INSERT INTO t_FileBase (FileData,....) values (@data....)";
                    SqlCommand cmd = new SqlCommand(strSQL, db);
                    cmd.Parameters.Add("@data", SqlDbType.Image, data.Length);
                    cmd.Parameters["@data"].Value = data;                db.Open();
                    cmd.ExecuteNonQuery();
                    // 释放资源
                    ....
                    return true;
                }
                catch(SqlException sqlex)
                {
                    //Prompt(sqlex.Message);
                    return false;
                }
            }
      

  3.   

    try
    {
    System.IO.MemoryStream stream=new System.IO.MemoryStream();
    this.pictureBox1.Image.Save(stream,this.pictureBox1.Image.RawFormat);
    stream.Seek(0,System.IO.SeekOrigin.Begin);
    byte[] by=new byte[stream.Length];
    stream.Read(by,0,by.Length); SqlConnection con=new SqlConnection("workstation id=TOM;packet size=4096;integrated security=SSPI;initial catalog=test;persist security info=False");
    con.Open();
    SqlCommand cmd=new SqlCommand("insertpic",con);
    cmd.CommandType=CommandType.StoredProcedure; SqlParameter spa=new SqlParameter("@image",SqlDbType.Image);
    cmd.Parameters.Add(spa);
    cmd.Parameters["@image"].Value=by;
    cmd.ExecuteNonQuery();
    con.Close();
    MessageBox.Show("success"); }
    catch(Exception ex)
    {
    MessageBox.Show(ex.ToString());
    }
      

  4.   

    CREATE PROCEDURE insertpic
         @image image
     AS
        insert into picture(pic) values (@image)
    GO
      

  5.   

    显示 SqlConnection con=new SqlConnection("workstation id=TOM;packet size=4096;integrated security=SSPI;initial catalog=test;persist security info=False");
    con.Open();
    string id=this.textBox1.Text.Trim();


    SqlCommand cmd=new SqlCommand("readpic",con);
    cmd.CommandType=CommandType.StoredProcedure;
    cmd.Parameters.Add("@id",SqlDbType.Int);
        cmd.Parameters["@id"].Value=Convert.ToInt32(this.textBox1.Text.Trim());
    SqlDataReader reader=cmd.ExecuteReader();
    if (reader.Read())
      {
      System.IO.MemoryStream ms=new System.IO.MemoryStream((byte[])reader["pic"]);
              this.pictureBox2.Image=Image.FromStream(ms,false);
              this.pictureBox2.SizeMode=PictureBoxSizeMode.StretchImage;   }
    reader.Close();
    con.Close();
      

  6.   

    CREATE PROCEDURE readpic
      @id int
     AS
       select * from picture where id=@id
    GO