Hallo Ihr Lieben!
ich versuch schon seit 2 Tagen hinter das Problem zu kommen. Ich habe nun das "ganze" Internet rauf und runter abgesucht und verstehe einfach nicht was ich falsch mache. Ich habe in meine Tabelle Bilder als Byte[]-Objekte abgelegt. Die SQL Compact 4.0 Toolbox liefert mir auf meine SELECT Anweisung auch ein System.Byte[] zurück. Soweit so gut.
Mit meiner unten beschriebenen Funktion bekomme ich statt des Image leider nur diesen Fehler zurück:
System.IndexOutOfRangeException: Aufgabenkontext
bei System.Data.SqlServerCe.FieldNameLookup.GetOrdinal(String fieldName)
bei System.Data.SqlServerCe.SqlCeDataReader.GetOrdinal(String name)
bei System.Data.SqlServerCe.SqlCeDataReader.get_Item(String name)
Ich schätze es ist nur eine Kleinigkeit, aber ich komme nicht dahinter
Please, help me!!!!!!!!!
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| public static Image func_read_images_from_database( string string_ConnectionString, string ID_Dokumente, string SearchColumn ) { Image img; byte[] imgData = null;
using (SqlCeConnection con = new SqlCeConnection(string_ConnectionString)) { con.Open(); using (SqlCeCommand com = new SqlCeCommand("SELECT '" + SearchColumn + "' FROM Dokumente WHERE ID_Dokumente = '" + ID_Dokumente + "'", con)) { try { using (SqlCeDataReader dr = com.ExecuteReader()) { while (dr.Read()) { imgData = (byte[]) dr[SearchColumn]; } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { con.Close(); } } } if (imgData != null) { MemoryStream ms = new MemoryStream(imgData); img = Image.FromStream(ms); return img; } return null; } |