Ik gebruik een dataset om een image in een database in te voegen en gebruik daar volgende functie om de image als byteArray door te geven:
In de dataset staat het element data op “byte” ook heb ik hier string geprobeerd maar dit werkt alsook niet.
Ik gebruik volgend statement om de insert te doen:=
Heb ook ctype oracleLob trachten te gebruiken
Ik blijf volgende exception krijgen:
Maar begrijp niet waar het fout gaat

Waar kan het probleem toch liggen?
Visual Basic:
1
2
3
4
5
6
7
8
9
10
| Private Function GetBytes(ByVal fname As String) As Byte() Dim reader As New BufferedStream(New FileStream(fname, FileMode.Open, FileAccess.Read)) Dim buffer(CInt(reader.Length) - 1) As Byte reader.Read(buffer, 0, CInt(reader.Length)) Return buffer End Function Sub addfile, alles wordt goed in de bytearray geplaatst (getest door naar string om te zetten): Dim b() As Byte = GetBytes(fileName) objDataRow.Item("Data") = b |
In de dataset staat het element data op “byte” ook heb ik hier string geprobeerd maar dit werkt alsook niet.
Ik gebruik volgend statement om de insert te doen:=
Visual Basic:
1
| MyBase.AddParameter("inData", OracleClient.OracleType.Blob, File.Tables("File").Rows(0).Item("Data").ToString.Length, CType(File.Tables("File").Rows(0).Item("Data"), Byte())) |
Heb ook ctype oracleLob trachten te gebruiken
Ik blijf volgende exception krijgen:
Visual Basic:
1
2
3
4
5
6
7
8
| Error: An unhandled exception of type 'System.ArgumentException' occurred in system.data.dll Additional information: System.InvalidCastException: Specified cast is not valid. at System.Convert.ToSByte(Object value) at System.Data.Common.SByteStorage.Set(Int32 record, Object value) at System.Data.DataColumn.set_Item(Int32 record, Object value)Couldn't store <System.Byte[]> in Data Column. Expected type is SByte. |
Maar begrijp niet waar het fout gaat
Waar kan het probleem toch liggen?
[ Voor 4% gewijzigd door Verwijderd op 04-03-2006 17:30 ]