#vb.net
#vb.net
Вопрос:
В настоящее время я работаю над проектом, который представляет собой музыкальный проигрыватель, но я пытаюсь заставить его работать с SQL Server.
Я загрузил свою музыку на SQL Server с помощью запросов, однако проблема заключается в их получении. Тип файла — varbinary (MAX). Я попытался пойти альтернативным путем, где я извлекаю двоичный файл в текстовом файле, а затем конвертирую расширение файла в .wav и воспроизводю его через медиаплеер, пока локальный файл является временным.
Private Sub Online_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
Using cn As SqlConnection = New SqlConnection("Server= DESKTOP-8KB6RLJ; Database= TESTdb; Integrated security = true ")
cn.Open()
Using cmd As SqlCommand = New SqlCommand()
cmd.Connection = cn
Dim qry As String
qry = String.Format("SELECT FileStreamCol From MUSIC")
cmd.CommandText = qry
cmd.CommandTimeout = 0
Dim oFileStream As System.IO.FileStream
oFileStream = New System.IO.FileStream("C:3N3RGYbytes.mp3", System.IO.FileMode.OpenOrCreate)
Using myReader As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
While (myReader.Read())
Dim data As Byte() = myReader(0)
oFileStream.Write(data, 0, data.Length)
End While
oFileStream.Close()
Dim myFiles As String()
myFiles = IO.Directory.GetFiles("C:3N3RGY", "*.txt")
Dim newFilePath As String
For Each filepath As String In myFiles
newFilePath = filepath.Replace(".txt", ".mp3")
System.IO.File.Move(filepath, newFilePath)
AxWindowsMediaPlayer1.URL = ListBox1.SelectedItem
Next
End Using
End Using
End Using
Catch ex As Exception
End Try
End Sub
Комментарии:
1. Получаем
Byte
массив и вызываемFile.WriteAllBytes
. Если сохраненные вами данные действительны, файл будет действительным.2. Вы записываете
FileStream
в одинWhile
цикл. Если существует несколькоByte
массивов, то, безусловно, вы должны сохранять каждый из них в отдельный файл. Если есть только один, почему цикл?3. как бы вы выполнили оператор while? и просто чтобы сообщить вам, я выполнил одно преобразование, вручную изменив binary.txt файл, который был записан на мой компьютер как wav-файл и попытался воспроизвести его с помощью встроенного wmp. это не сработало. есть предложения?