Wie konvertiert BLOB-Bild

Ich habe ein problem bei der Anzeige das Bild, das gespeichert ist in meiner MySQL-Datenbank.
Ich weiß nicht, ob ich gespeichert habe es erfolgreich aber mit dieser Funktion, die konvertiert Bild, um eine blob-Datei, hier ist die Funktion:

private byte[] imageToByteArray(Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    return ms.ToArray();
}

Wenn ich meine Datenbank sagt es BLOB mit blau markieren. Nun, ich möchte das Bild in meiner picturebox. Ich habe auch eine Funktion zum umwandeln byte-array in Bild..

private Image byteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    ms.Position = 0;
    Image returnImage = Image.FromStream(ms);
    return returnImage;
}

Wenn ich die Anwendung ausführen, es sagt:

ArgumentException wurde unheld, ein Parameter ist nicht gültig

Habe ich versucht, mit dieser syntax:

pictureBox1.Image = byteArrayToImage(dr["img"] as byte[]);

Oder ich bin am überlegen ob ich konvertiert BLOB-Daten in Byte-Array zuerst? dann verwenden Sie die Funktion zum konvertieren des byte-array in Bild?

wenn ich auf den Namen, es sollen die Informationen angezeigt, die, leider, ich erhalte die argument-Ausnahme..

int i = dataGridView1.SelectedCells[0].RowIndex;
string firstname = dataGridView1.Rows[i].Cells[0].Value.ToString();
string lastname = dataGridView1.Rows[i].Cells[1].Value.ToString();

Connection connect = new Connection();
MySqlConnection mySqlConnect = new MySqlConnection(connect.connString());
mySqlConnect.Open();

string s = "SELECT * FROM tbl_contacts WHERE username = '" + label1.Text + "' and (fname = '" + firstname + "' and lname = '" + lastname + "')";

MySqlCommand mySQL = new MySqlCommand(s, mySqlConnect);
mySQL.ExecuteNonQuery();
MySqlDataReader dr = mySQL.ExecuteReader();

if (dr.HasRows)
{
    dr.Read();
    txtFname.Text = dr["fname"].ToString();
    txtLname.Text = dr["lname"].ToString();
    txtBday.Text = dr["birthday"].ToString();
    txtEmail.Text = dr["email"].ToString();
    txtMobile.Text = dr["mobile"].ToString();
    txtAddress.Text = dr["address"].ToString();
    txtNotes.Text = dr["notes"].ToString();
    pictureBox1.Image = byteArrayToImage(dr["img"] as byte[]);
}
  • Wo ist der ArguementException geworfen, in der ersten oder zweiten bit-code? Auch, wie Sie das abrufen der Daten von der Datenbank?
  • Wenn Sie dies ausführen im debugger, sollten Sie die option " überprüfen der ArgumentException ausgelöst. Dieses sollte a) geben Sie den Namen des Arguments, das nicht gültig ist, und b) ein stack-trace zeigt, dass shere es wird geworfen. Ohne zu wissen, eine oder beide dieser Stücke von Informationen, könnten wir raten, für Tage.
  • Können Sie sagen, was dr["img"].GetType() gibt?
  • Ataş es sagt-system.byte[]
  • Möglich, Duplikat der Einfache Möglichkeit zum konvertieren eines Bitmap-und Png-Bild zu text und Umgekehrt
InformationsquelleAutor Lhynx | 2013-01-15
Schreibe einen Kommentar