我试过这个
byte[] byteArrayFile = File.ReadAllBytes(@""+listBox1.SelectedItem);
SqlCommand com = new SqlCommand("INSERT INTO tblVoice(flbVoice) VALUE (byteArrayFile");
我也想把它放在服务器上 这个
byte[] byteArrayFile = File.ReadAllBytes(listBox1.SelectedItem);
SqlCommand com = new SqlCommand("INSERT INTO tblVoice(flbVoice) VALUE (byteArrayFile");
但失败请帮助谢谢
答案 0 :(得分:0)
现有代码可能存在一些问题。
使用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();
}
}
此外,您在INSERT语句中缺少“T”,这在上面的示例中已得到纠正。