解决方案 »

  1.   


    MemoryStream ms = new MemoryStream();
                    picturebox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    ms.Dispose();
                    cmd.parameters[0].Value = ms.ToArray();
      

  2.   

    你要把图片先转换成二进制,然后存到数据库的varbinary(max)字段。
    在存的时候用sql param形式举个例子:
    public static void SavePhoto(string userName, string passWord, Image image)
            {
                string sql = "INSERT INTO PIMUser(UserName, Password, UserPhoto) values(@UserName, @Password, @UserPhoto)";
                SqlParameter[] param = new SqlParameter[3];
                param[0] = new SqlParameter("@UserName", SqlDbType.NVarChar,32);
                param[0].Value = userName;
                param[1] = new SqlParameter("@Password", SqlDbType.VarChar,32);
                param[1].Value = passWord;
                param[2] = new SqlParameter("@UserPhoto",SqlDbType.VarBinary);
                param[2].Value = ImageToGZip(image);            SqlConnection conn = new SqlConnection();
                conn.ConnectionString = ConfigurationManager.AppSettings["connString"];            SqlCommand commd = new SqlCommand(sql, conn);
                commd.Parameters.Add(param[0]);
                commd.Parameters.Add(param[1]);
                commd.Parameters.Add(param[2]);            try
                {
                    conn.Open();
                    commd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    conn.Close();
                }
            }
      

  3.   

    方法一:存图片路径,缺点是当用户把图片搞走了,或神马的图片坏了就显示不出来了,优点是不会给带来数据库负担
    方法二:二进制存数据库,缺点是会使数据库变的很大,如果是access数据库的话不建议存二进制,优点是图片不会被损坏~