2011-01-10 9 views
0

Registriert seit sparen: 10. Dezember Beiträge: 10 caba11 an dieser Stelle eine unbekannte Größe ist (< 10)wie Binärdatei Datenbank

wie Binärdatei Datenbank hallo zu speichern. ich brauche Dateien in der Datenbank speichern ... i cant find, warum es nicht funktioniert ...

dies ist mein Code:

Public Sub importfiles(ByVal sFileName As String) 

    Dim cnSQL As SqlConnection 
    Dim cmSQL As SqlCommand 
    Dim strSQL 

    'Validate form values 

    'Read file into a stream 
    Dim fs As New FileStream(sFileName, FileMode.Open, FileAccess.Read) 
    Dim myData(fs.Length) As Byte 
    fs.Read(myData, 0, fs.Length) 
    fs.Close() 

    Try 

     'Build SQL 
     strSQL = "insert into data_cesta(ID, cesta) values (@ID, @cesta)" 

     cnSQL = New SqlConnection("Data Source=.;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True") 
     cmSQL = New SqlCommand(strSQL, cnSQL) 

    cmSQL.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int)).Value = ID 
    cmSQL.Parameters.Add(New SqlParameter("@cesta", SqlDbType.NText)).Value = myData 
    ' cmd2.Parameters.Add("@ID", SqlDbType.Int).Value = ID 
    ' cmd2.Parameters.Add("@cesta", SqlDbType.NText).Value = myData 


    'Open connection and execute the command 
    cnSQL.Open() 
    cmSQL.ExecuteNonQuery() 

    'Close and clean up objects 
    cnSQL.Close() 
    cmSQL.Dispose() 
    cnSQL.Dispose() 

    Catch ex As SqlException 
    MsgBox(ex.Message, MsgBoxStyle.Critical, "SQL Error") 
    Catch ex As Exception 
    MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error") 
    End Try 

End Sub 

ohne versuchen, es sagt "cmSQL.ExecuteNonQuery()" - "Fehler beim Konvertieren des Parameterwerts von einer DataGridViewTextBoxColumn in einen Int32."

Antwort

0

Es sieht so aus, als ob Sie einige Dateipfade in ein DataGrid laden, bevor sie in Ihre Datenbank verarbeitet werden.

Standardmäßig wird Ihr ID-Feld als DataGridViewTextBoxColumn-Objekt innerhalb des DataGrids an die Prozedur übergeben. Sie müssen den Text innerhalb dieses Objekts abrufen.

Sie können dies tun, indem Sie auf das zugeordnete DataGridViewTextBoxCell-Objekt in der zu verarbeitenden Zeile zugreifen. Innerhalb des DataGridViewTextBoxCell-Objekts befindet sich eine Eigenschaft namens "Value", die den von Ihnen benötigten ID-Wert aufweist.

Ohne mehr Code zu sehen, ist es schwer, Ihnen den genauen Code zu geben, aber schauen Sie sich den Code DataGridViewCell object an, da die TextBoxCell von dieser Klasse erbt.

+0

Ich versuchte dies aber immer noch gleichen Fehler .... http://www.aspsnippets.com/Articles/Save-and-Retrieve-Files-from-SQL-Server-Database-using-ASP.Net.aspx – caba11

+0

Derzeit glaube ich nicht, dass Ihr Problem mit dem Lesen von Binärdaten ist, ich denke, es ist mit der Einstellung der ID-Wert für Ihre SqlCommand-Parameter angesichts der Fehler, dass es die DataGridViewTextBoxColumn nicht zu einem Integer konvertieren kann. –