SqlParameter构造函数中的[Size]参数不是Image字段的长度(16),而是字节数组的长度。 可用一下两种构造方式构造SqlParameter

   

SqlParameter para = new SqlParameter("@ImageCol", SqlDbType.Image, bytes.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, bytes);
  或 SqlParameter para = new SqlParameter("@ImageCol", SqlDbType.Image,bytes.Length);
                para.Value = bytes;Codetry
            
{
                SqlConnection con = new SqlConnection(connString);
                SqlCommand cmd = new SqlCommand("insert into TestImage values(@ImageCol)", con);
                String strBLOBFilePath = this.open.FileName;//Modify this path as needed.

                //从一个包含图片的路径中读取图片信息到流 
                FileStream fileStream = new FileStream(this.open.FileName, FileMode.Open, FileAccess.Read);
                Byte[] bytes = new Byte[fileStream.Length];
                fileStream.Read(bytes, 0, bytes.Length);
                fileStream.Close();

                //添加ImageCol列的参数 
                SqlParameter para = new SqlParameter("@ImageCol", SqlDbType.Image, bytes.Length, ParameterDirection.Input, false,
                            0, 0, null, DataRowVersion.Current, bytes);
                cmd.Parameters.Add(para);

                //上传图片流信息 
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
            catch (Exception ex)
            
{ MessageBox.Show(ex.Message); }

 

二。读取图片信息

 

ios 照片 参数错误 图片参数错误_构造函数

Code            try
            
{
                SqlConnection cn = new SqlConnection(connString);
                cn.Open();

                //从数据库获取图片流信息 
                SqlCommand cmd = new SqlCommand("select ImageCol from TestImage", cn);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);


                //假设只有一条记录
                Byte[] byteImageCol = (Byte[])(dt.Rows[0]["ImageCol"]);
                MemoryStream stmImageCol = new MemoryStream(byteImageCol);
                pictureBox1.Image = Image.FromStream(stmImageCol);

                cn.Close();
            }
            catch (Exception ex)
            
{ MessageBox.Show(ex.Message); }