Есть несколько вещей, которые могут быть неправильными с вашим существующим кодом.
Использование File.ReadAllBytes()
Вы используете File.ReadAllBytes()
метод, который на самом деле ожидает путь к файлу. Если ваш фактический ListBox состоит из путей к файлу, то это может работать нормально, но если он состоит из других типов значений, он может выйти из строя. Так просто убедитесь, что вы на самом деле, используя путь к файлу здесь:
// If your selection is a file path, then this should work
byte[] byteArrayFile = File.ReadAllBytes(Convert.ToString(listBox1.SelectedItem));
Если вы не используете путь к файлу, возможно, потребуется уточнить, что ваше фактическое содержание ListBox выглядит как определить лучший способ конвертировать его в byte[]
.
Выполнение запроса базы данных (и проверьте синтаксис)
команды, которую поставляется отдельно не будет выполнять запрос к базе данных. База данных вызовов обычно требуется соединение, которое вам нужно будет создать что указывает на целевой местоположение:
using(var connection = new SqlConnection("Your Connection String"))
{
var query = "INSERT INTO tblVoice(flbVoice) VALUE (@file)";
using(var command = new SqlCommand(query, connection))
{
connection.Open();
// Pass your byte data as a parameter
command.Parameters.AddWithValue("@file",byteArrayFile);
// Execute your parameter
command.ExecuteNonQuery();
}
}
Кроме того, вы пропускали «T» в вашем INSERT заявление, которое было исправлено в приведенном выше примере.
Вам не хватает «T» в «INSERT». –