2017-08-20 4 views
-1

Ich verwende zwei separate Tasten, um das Bild zu drehen und das Bild zu speichern. Irgendwie funktioniert die Rotation. Aber das Speichern (Update) funktioniert nicht. Ich habe versucht, das Problem zu finden, aber ich konnte nicht.Der Wert darf nicht null sein. Parametername Encoder MySql C#

Der Fehler ist "Wert kann nicht Null sein. Parameter Name Encoder". Meine beste Vermutung ist, dass RotateFlip irgendwie die Bildbox beeinflusst.

Grüße

Dies ist mein Code,

private void btnRotate_Click(object sender, EventArgs e) 
     { 

      if (pictureBoxProfile.Image != null) 
      { 
       pictureBoxProfile.Image.RotateFlip(RotateFlipType.Rotate90FlipNone); 
       pictureBoxProfile.Refresh(); 
      } 
      else 
      { 
       MessageBox.Show("Select an Image"); 
      } 
     } 


private void btnSave_Click(object sender, EventArgs e) 
     { 
      if (txtShortName.Text == "" || txtPhoneNumberM.Text == "" || txtFullName.Text == "" || gender.Text == "" || richTextBoxAddress.Text == "" || txtPhoneNumberH.Text == "" || status.Text == "" || pictureBoxProfile.Image == null) 
      { 
       MessageBox.Show("Empty fields are detected!. Please fill up all fields"); 
       return; 
      } 

      try 
      { 

       con.Open();     

       MySqlCommand cmd2 = new MySqlCommand("UPDATE customer SET mr_mrs = @mr_mrs, short_name = @short_name, full_name = @full_name, nic_number = @nic_number, gender = @gender, address = @address, phone_no_home = @phone_no_home, phone_no_mobile = @phone_no_mobile, image = @image, status = @status, type = @type, nic_frnt = @nic_frnt, nic_back = @nic_back WHERE ([email protected]_number)", con); 

       MemoryStream ms = new MemoryStream(); 
       pictureBoxProfile.Image.Save(ms, pictureBoxProfile.Image.RawFormat); 
       byte[] img = ms.ToArray(); 

       MemoryStream ms2 = new MemoryStream(); 
       pictureBox1.Image.Save(ms2, pictureBox1.Image.RawFormat); 
       byte[] img2 = ms2.ToArray(); 

       MemoryStream ms3 = new MemoryStream(); 
       pictureBox3.Image.Save(ms3, pictureBox3.Image.RawFormat); 
       byte[] img3 = ms3.ToArray(); 

       cmd2.Parameters.AddWithValue("@mr_mrs", mr_mrs.Text); 
       cmd2.Parameters.AddWithValue("@short_name", txtShortName.Text); 
       cmd2.Parameters.AddWithValue("@full_name", txtFullName.Text); 
       cmd2.Parameters.AddWithValue("@nic_number", textBox1.Text); 
       cmd2.Parameters.AddWithValue("@gender", gender.Text); 
       cmd2.Parameters.AddWithValue("@address", richTextBoxAddress.Text); 
       cmd2.Parameters.AddWithValue("@phone_no_home", txtPhoneNumberH.Text); 
       cmd2.Parameters.AddWithValue("@phone_no_mobile", txtPhoneNumberM.Text); 
       cmd2.Parameters.AddWithValue("@status", status.Text); 
       cmd2.Parameters.AddWithValue("@image", img); 
       cmd2.Parameters.AddWithValue("@type", comboBox1.Text); 
       cmd2.Parameters.AddWithValue("@nic_frnt", img2); 
       cmd2.Parameters.AddWithValue("@nic_back", img3); 
       cmd2.ExecuteNonQuery(); 
       MessageBox.Show(this, "Customer updated succesfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); 
       this.Close(); 
       con.Close(); 
       ClearData(); 
      } 
      catch (MySqlException x) 
      { 
       MessageBox.Show(x.Message); 
       con.Close(); 
      } 
     } 
+0

Ich denke, eine der Spalten auf 'NICHT NULL' gesetzt ist, aber sie versuchen, es zu aktualisieren, um' NULL' – Psi

+0

Sie bedeuten in Mysql-Datenbank ? –

+0

Ja, das ist, was ich vermute – Psi

Antwort

0

Das Problem mit der Image.Save Methode. Statt:

pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat); 

Try this:

pictureBox1.Image.Save(ms, Imageformat.Jpeg); 
Verwandte Themen