Ich bin auf ein Problem mit einem C# -Projekt gestoßen, an dem ich arbeite. Ich erhalte eine Objektarray enthält alle ausgewählten Elemente aus einer Datenbank Zeile mit der Funktion:C# Fehler beim Konvertieren von Bytearray von der Datenbank in Bild
public static object[] getResultSet (string statement)
{
object[] resultArray=null;
OleDbConnection con = getConnection();
OleDbCommand command = new OleDbCommand(statement, con);
try
{
con.Open();
OleDbDataReader reader = command.ExecuteReader();
if (reader.Read())
{
resultArray = new object[reader.FieldCount];
reader.GetValues(resultArray);
}
reader.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.ToString(),"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
finally
{
con.Close();
}
return resultArray;
}
und ich habe dieses Objekt Array, in dem ich alle Ergebnisse gespeichert haben:
object[] obj = getResultSet("SELECT * FROM Rooms WHERE ID=1");
ich sicher weiß, dass das Objekt obj [2] ein BLOB in meiner Datenbank ist, weil der Debugger über 3mil Bytes für mein Objekt zeigt. Aber wenn ich versuche, die Bytes Array von dem Objekt zu konvertieren wir informieren Sie, dass ich nicht eine Ausnahme behandeln habe:
„Eine nicht behandelte Ausnahme des Typs‚System.ArgumentException‘aufgetreten in System.Drawing.dll
Zusätzliche Information: Parameter ist nicht gültig.
Hier ist die Funktion, die ich bin mit dem Byte-Array in ein Bild zu konvertieren:
public static Image imageFromByteArray(byte[] bytearray)
{
Image img;
ImageConverter imgCon = new ImageConverter();
img=(Image)imgCon.ConvertFrom(bytearray);
return img;
}
I
imageFromByteArray((byte[])obj[2]);
zu nennen versucht, aber es hat nicht funktioniert, auch mit einer anderen Funktion, die wandelt ein Objekt in ein Byte-Array um:
public static byte[] objectToByteArray(object obj)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
return ms.ToArray();
}
Was ist das Problem bei der Verwendung der zweiten Methode, 'objectToByteArray' – Stefan
@Stefan das gleiche Problem – Stevie
Sieht aus wie' ConvertFrom '' 'Objekt' als Parameter, nicht ein Byte-Array? – Stefan