public void SaveImage(string MID, byte[] p)
        {
            MyDataClass.con_open();
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update tb_Stuffbusic Set Photo=@Photo where ID="+MID);
            SqlCommand cmd = new SqlCommand(strSql.ToString(), DataClass.MyMeans.My_con);
            cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = p;
            cmd.ExecuteNonQuery();
            DataClass.MyMeans.My_con.Close();
        }
上面的代码可将图像导入数据表tb_Stuffbusic中相应的Photo列
现在我想要 将多个picturebox里面的图像 一起导入到一个新建的表比如tb_Photo中 请问 应该如何实现

解决方案 »

  1.   

    是放在不同的字段 想一个picturebox里面的图像存到对应的字段中  我是新手 希望您说明白点 谢谢
      

  2.   

    MyDataClass.con_open();
                StringBuilder strSql = new StringBuilder();
                for (long i = 1; i < 30; i++)
                {
                   
                    strSql.Append("update tb_ZJ Set ZJ[i]=@ZJ_[i] where ID=" + ZGno);
                    SqlCommand cmd = new SqlCommand(strSql.ToString(), DataClass.MyMeans.My_con);
                    cmd.Parameters.Add("@ZJ_[i]", SqlDbType.Binary).Value = imgBytesIn;
                    cmd.ExecuteNonQuery();
                    DataClass.MyMeans.My_con.Close();
                }我应该是遍历的时候 方法写的有问题吧 麻烦各位看下 应该如何修改 谢谢
      

  3.   

     private void ZJ_Save_Click(object sender, EventArgs e)
            {
               MyDataClass.con_open();
                StringBuilder strSql = new StringBuilder();
                //保存到数据库
                string tem_Value="", ADDs = "";
                string Sarr = "ID,ZJ1,ZJ2,ZJ3,ZJ4,ZJ5,ZJ6,ZJ7,ZJ8,ZJ9,ZJ10,ZJ11,ZJ12,ZJ13,ZJ14,ZJ15,ZJ16,ZJ17,ZJ18";
                string[] Parr = Sarr.Split(Convert.ToChar(','));
                for (long i = 1; i < 30; i++)
                {
                    string sID = "ZJ_" + i.ToString();
                    foreach (Control C in this.tabPage8 .Controls  )
                    {
                        if (C.GetType().Name == "PictureBox")
                            //if (C.Name =sID )
                        {
                            string Ctext=C.Text ;                     
                         tem_Value = tem_Value + "," + Parr[i] + "='" + Ctext + "'";
                         ADDs = "update tb_ZJ  set " + tem_Value + " where ID='ZGno'";
                        //strSql.Append("update tb_ZJ Set ZJ[i]=@ZJ_[i] where ID=" + ZGno);
                         strSql.Append(ADDs);
                        }
                        SqlCommand cmd = new SqlCommand(strSql.ToString(), DataClass.MyMeans.My_con);
                        cmd.Parameters.Add(tem_Value, SqlDbType.Binary).Value = imgBytesIn;
                        try { cmd.ExecuteNonQuery(); }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                    }
                    DataClass.MyMeans.My_con.Close();
                }                    }
      

  4.   

    如果你不喜欢二进制格式的字段,那么也可以把图片内容序列化到一个BAS64字符串中,以字符串的方式保存,之后需要的时候再通过BAS64解码出来,转换为2进制。
    但是这样效率比较底一些。
    最好是直接保存到二进制字段中。效率高
      

  5.   

    for里面做的应该只是拼接SQL才对,不要操作数据库。
    MyDataClass.con_open();
      StringBuilder strSql = new StringBuilder();
      for (long i = 1; i < 30; i++)
      {
       strSql.Append("update tb_ZJ Set ZJ[i]=@ZJ_[i] where ID=" + ZGno);
       }
      SqlCommand cmd = new SqlCommand(strSql.ToString(), DataClass.MyMeans.My_con);
      cmd.Parameters.Add("@ZJ_[i]", SqlDbType.Binary).Value = imgBytesIn;
      cmd.ExecuteNonQuery();
      DataClass.MyMeans.My_con.Close();
      
      

  6.   

    //显示证件照片里面的图像
                    MyDataClass.con_open();
                    StringBuilder strSql = new StringBuilder();
                    
                    strSql.Append("select ZJ1,ZJ2 from tb_ZJ where ID=" + ZGno.Text.Trim());
                    SqlCommand cmd = new SqlCommand(strSql.ToString(), DataClass.MyMeans.My_con);
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                       
                            pic = (byte[])reader.GetValue(0);
                            MemoryStream ms = new MemoryStream(pic); //将字节数组存入到二进制流中
                            ZJ_1.Image = Image.FromStream(ms); 
                           
                            pic2 = (byte[])reader.GetValue(1);
                            MemoryStream ms2 = new MemoryStream(pic2);
                            ZJ_2.Image = Image.FromStream(ms2);
                         
                    }
                   
    请教各位 我这个哪里有问题 我想多个picturebox显示多个图