Ich möchte mit drag&drop Files übernehmen und dann binär im sql-server speichern.
Es gibt aber folgende Fehlermeldung - und aääähh, ja!!
Konvertierung des Parameterwertes von FileStream in Byte[] fehlgeschlagen.
Wie muss das Property denn richtig aussehen, oder mach ich was ganz anderes falsch?
Hier der Code
Private Sub DragDrop(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs)
Dim sa As String() = CType(e.Data.GetData(DataFormats.FileDrop), _
String())
For Each elem As String In sa
Dim Strm As New System.IO.FileStream(elem, IO.FileMode.Open, _
IO.FileAccess.Read)
Dim bytesRead(CInt(Strm.Length - 1)) As Byte
Strm.Read(bytesRead, 0, CInt(Strm.Length))
Dim objRepositoryDok As New RepositoryDok()
objRepositoryDok.RepositoryDokNI = System.Guid.NewGuid.ToString( _
)
objRepositoryDok.RepositoryDokType = Path.GetExtension( _
elem).ToLower()
objRepositoryDok.RepositoryDokContent = Strm
objRepositoryDok.setDataAsObject() Die Klasse RepositoryDok hat dann das Property
Private m_RepositoryDokContent As Object
Public Property RepositoryDokContent() As Object
Get
Return m_RepositoryDokContent
End Get
Set(ByVal Value As Object)
m_RepositoryDokContent = Value
End Set
End Property Und übergeben wird die Klasse dann als Object ...
Public Sub setDataAsObject(ByVal DataObject As Object)
Dim arrParam() As SqlParameter
arrParam = SqlHelperParameterCache.GetSpParameterSet( _
GlobalData.SQLcon, SprocNameSet)
Try
For x As Integer = 0 To arrParam.Length - 1
Dim pi As Reflection.PropertyInfo = DataObject.GetType( _
).GetProperty(arrParam(x).ParameterName.Substring(1, CInt( _
arrParam(x).ParameterName.Length) - 1))
Debug.WriteLine("Feld: " & arrParam(x).ParameterName & " =" & _
"" & TryCast(pi.GetValue(DataObject, Nothing), _
System.String))
arrParam(x).Value = pi.GetValue(DataObject, Nothing)
Next
SqlHelper.ExecuteScalar(GlobalData.SQLcon, _
CommandType.StoredProcedure, SprocNameSet, arrParam)
Catch ex As Exception
MessageBox.Show("Fehler in der Methode: " + New StackFrame( _
True).GetMethod.Name.ToString + " In der Zeile: " + New _
StackFrame(True).GetFileLineNumber.ToString + _
System.Environment.NewLine + "Fehler: " + ex.Message)
End Try
End Sub Die StoredProc:
CREATE procedure CCon_RepositoryDokAdd
...
@RepositoryDokContent image,
...
Sector Twelve, or to Infinity and Beyond, whichever comes first.! |