c# - 使用 C# 从 MySQL 插入和检索音频文件

标签 c# mysql

我成功地在 MySQL 数据库中保存了一个音频文件,但我不知道如何从数据库中检索和播放它。任何帮助将不胜感激。

这是我的插入代码:

private void button2_Click(object sender, EventArgs e)
{
    try 
    {
        MySqlConnection connection;
        string cs = @"server = 127.0.0.1; userid = root; pwd = ; database = atlfmdb;";
        connection = new MySqlConnection(cs);

        if (upload.Text.Length > 0 && 
            vName.Text.Length > 0 && 
            vTel.Text.Length>0 && 
            tbposition.Text.Length>0)
        {
            string FileName = upload.Text;

            byte[] f = File.ReadAllBytes(upload.Text) ;

            MySqlCommand selectcom = new MySqlCommand("insert into interinterview(intName,intPosition,intTel,audioFile)values('" + vName.Text + "','" +  tbposition.Text + "','" + vTel.Text + "','" + f + "')", connection);
            MySqlDataReader myread;

            connection.Open();
            myread = selectcom.ExecuteReader();
            while (myread.Read())
            {
            }

            connection.Close();
            MessageBox.Show("Data saved successfully");
            vName.Text = "";
            vTel.Text = "";
            tbposition.Text = "";
            upload.Text = "";
        }
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
        openFileDialog1.Filter = "Audio files | *.mp3";

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            upload.Text = openFileDialog1.FileName;
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
}
}

最佳答案

如果您还没有找到解决方案,我只是根据此链接中的答案解决了这个问题: How to play audio file located on server in asp.net

在此链接的末尾,它为您提供了 Dewplayer 压缩包的位置。下载 dewplayer-vol.swf 文件并将其放入您的根文件夹。

您需要将所有 MS SQL 命令转换为 MySQL 并将 MySQL.DLL 放入您的 bin 文件夹中(如果不存在)。在我的例子中,我将 mp3 文件存储为 varbinay 并使用类似这样的存储过程检索它:

private void BindGrid()
{
  string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["MySqlServer"].ConnectionString;

   using (MySql.Data.MySqlClient.MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection(connStr))
    {

        using (MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand("getaudio", conn))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            conn.Open();
            using (IDataReader idr = cmd.ExecuteReader())
            {
                GridView1.DataSource = idr;
                GridView1.DataBind();
            }
            conn.Close();               
        }
     }
}

此链接中的更多详细信息: http://aspsnippets.com/Articles/Save-MP3-Audio-Files-to-database-and-display-in-ASPNet-GridView-with-Play-and-Download-option.aspx

您需要创建一个名为 Audio.ashx 的文件并将其放入根文件夹中。希望这可以帮到你。

关于c# - 使用 C# 从 MySQL 插入和检索音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26588298/

相关文章:

c# - 在 c# 中成为 unity 3d 对象的子对象

php - mysqli bind_param 变量数量与准备好的语句中的参数数量不匹配

mysql - SQL Join ON 子句对别名的有效引用

mysql - 无法使用外键添加新列

c# - 如何从ms word文档的当前可见页面获取单词?

c# - 如何使用ssis搜索文件系统中的文件夹并将其移动到目标文件系统?

mysql - 触发器不起作用,插入时插入另一个表时出错

java - Hibernate错误查询生成

c# - OraOLEDB.Oracle 提供程序未在本地计算机上注册

c# - WCF "A call to SSPI failed, see inner exception"