The first thing to do is to change the way you are saving the data: there are two problems with your insert statement.
The first is that you should explicitly list the fields into which you want to save the data - anonymous entry relies on your DB not changing in the future.
sqltxt = "insert into test values('" & TextBox1.Text & "',@fdoc)"
Becomes:
sqltxt = "insert into test (fileName, fileData) values('" & TextBox1.Text & "',@fdoc)"
The second is that you really, really, should use the parametrized query you are setting up to specify the text as well - passing the TextBox content by string concatenation is opening your database up for an accidental or deliberate Sql Injection Attack. You are passing the file data as a parameter, so why not pass the TextBox content as well?
To retrieve it is exactly the same process you use for any other database access:
Using con As New SqlConnection(strConnect)
con.Open()
Using com As New SqlCommand("SELECT fileName, fileData FROM test", con)
Using reader As SqlDataReader = com.ExecuteReader()
While reader.Read()
Dim fileName As String = DirectCast(reader("fileName"), String)
Dim fileData As Byte() = DirectCast(reader("fileData"), Byte())
...
End While
End Using
End Using
End Using