加入日期:12月10日 帖子:10 此时caba11是未知数量(< 10)
如何将二进制文件保存到数据库 喜。 我需要将文件保存到数据库中...... 我无法找到它为什么不起作用......
这是我的代码:
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
没有尝试它说“cmSQL.ExecuteNonQuery()” - “无法将参数值从DataGridViewTextBoxColumn转换为Int32。”
答案 0 :(得分:0)
看起来好像是在将一些文件路径加载到数据库之前将它们加载到DataGrid中。
默认情况下,您的ID字段将作为DataGrid中的DataGridViewTextBoxColumn对象传递给过程。您需要检索该对象中的文本。
您可以通过访问正在处理的行上的关联DataGridViewTextBoxCell对象来执行此操作。在DataGridViewTextBoxCell对象中有一个名为“Value”的属性,它将具有您需要的ID值。
如果没有看到更多代码,很难为您提供确切的代码,但请查看DataGridViewCell object以获取一些有用的代码,因为TextBoxCell继承自此类。