0

こんにちは、C# と SQL Server 2008 データベースを使用してテーブル内の画像を更新しようとしていますが、エラーが発生します (パスを null にすることはできません。パラメーター名:パス)。

これはコードです:

            try
            {
                byte[] imgData;
                imgData = File.ReadAllBytes(pictureBox.ImageLocation);
                string vsql = string.Format("SELECT id_cl FROM classe WHERE Nclasse='" + comboBoxcl.Text + "'");
                SqlCommand dra = new SqlCommand(vsql, vCon);
                vCon.Open();
                SqlDataReader dr = dra.ExecuteReader();
                int a = 0;
                while (dr.Read())
                {
                    a = int.Parse(dr["id_cl"].ToString());
                }
                vCon.Close();
                etd = new Etudiant(textBoxN.Text, textBoxP.Text, CNE, textcin.Text, a, textphoto.Text); 
                etd.Modifier_etudiant(D, imgData);
                MessageBox.Show("Modifier", "Succès", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

// 以下は変更関数です

     public void Modifier_etudiant(int ID, byte[] image)
    {
        string vsql = string.Format("UPDATE etudiant SET nom = @nom, prenom = @prenom,cne = @cne, cin = @cin, classe = @classe, photo = @photo, image = @DATA WHERE id_etd='"+ID+"'");
        try
        {
            vCon.Open();
            SqlCommand azert = new SqlCommand(vsql, vCon);
            azert.Parameters.Add("@nom", GetNom());
            azert.Parameters.Add("@prenom", GetPernom());
            azert.Parameters.Add("@cne", GetCne());
            azert.Parameters.Add("@cin", GetCin());
            azert.Parameters.Add("@classe", GetClasse());
            azert.Parameters.Add("@photo", GetNomPhoto());
            azert.Parameters.Add("@DATA", image);
            azert.ExecuteNonQuery();
            vCon.Close();
        }catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
4

0 に答える 0