private void button1_Click(object sender, EventArgs e)
        {
            Stream ms;
            byte[] picbyte;
            OpenFileDialog ofdSelectPic = new OpenFileDialog();
            ofdSelectPic.ShowDialog();
            ms = ofdSelectPic.OpenFile();
            picbyte = new byte[ms.Length];
            ms.Position = 0;
            ms.Read(picbyte, 0, Convert.ToInt32(ms.Length));            SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=;database=库");
            conn.Open();
            string sqlstring = "UPDATE 表 SET 字段 = (@img) WHERE ..."; 
            SqlCommand cmd = new SqlCommand(sqlstring, conn);
            cmd.Parameters.Add("@img", SqlDbType.Image, picbyte.Length).Value = picbyte;
            
            cmd.ExecuteNonQuery();
            conn.Close();
        }

解决方案 »

  1.   

            /// <summary>
            /// 把image对象保存到数据库中
            /// </summary>
            /// <param name="ConnStr">连接字符串</param>
            /// <param name="TableName">表名</param>
            /// <param name="KeyFieldName">关键字名</param>
            /// <param name="KeyValue">关键字值</param>
            /// <param name="PhotoFieldName">要更改的image类型列名</param>要更改的image类型列名
            /// <param name="PhotoFieldValue">要更改的image类型值</param>
            /// <returns></returns>
            private bool SetImageToDb(string ConnStr, string TableName,string KeyFieldName, string KeyValue,string PhotoFieldName,Image PhotoFieldValue)
            {
                
                if (PhotoFieldValue != null)
                {
                    try
                    {
                        Bitmap bmp = new Bitmap(PhotoFieldValue);
                        MemoryStream ms = new MemoryStream();
                        bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
                        Byte[] sdt = ms.ToArray();                    SqlConnection conn = new SqlConnection(ConnStr);
                        conn.Open();
                        string strsql="Update "+TableName+ "  Set "+PhotoFieldName+"=@photo "+ " where "+KeyFieldName +"="+KeyValue;
                        SqlCommand cmd = new SqlCommand(strsql, conn);
                        cmd.Parameters.Add("@photo",SqlDbType.Image);
                        cmd.Parameters["@photo"].Value=sdt;
                        cmd.ExecuteNonQuery();
                        cmd=null;
                        conn.Close();
                        MessageBox.Show("图象已成功保存到数据库");
                        return true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString(),ex.Message);
                        return false;
                    }
                }
                else
                {
                    MessageBox.Show("图片参数(image)不能为空");
                    return false;
                }
            }调用上面的函数即可。
            private void btn_Change_Click(object sender, EventArgs e)
            {
                Image img = this.pictureBox1.Image;
                SetImageToDb("Server=(Local);Uid=Sa;Pwd=;DataBase=库名", "GuestPhoto", "Id", textBox1.Text, "Photo", img);
            }