如何将listbox1.items转换为C#中的bytearrayfile或byte

时间:2016-04-11 14:07:38

标签: c# sql

我试过这个

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");

但失败请帮助谢谢

1 个答案:

答案 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”,这在上面的示例中已得到纠正。