2014-10-27 60 views
1

我将音频文件成功保存在MySQL数据库中,但我不知道如何从数据库中检索和播放。任何帮助将不胜感激。使用c插入和检索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); 
    } 
} 
} 
} 
+4

我不明白。你将这些值保存到你的数据库,但你不能从数据库中读取它们?你应该总是使用[参数化查询](http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/)。这种字符串连接对于[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)攻击是开放的。并使用'using'语句处理您的数据库连接和对象 – 2014-10-27 13:11:24

+0

我可以检索其余数据,但不能检索音频文件。 – 2014-10-27 14:03:22

+0

我试图使用媒体播放器播放音频文件,但它说文件有.datarowview扩展名 – 2014-10-29 13:04:55

回答

0

如果你还没有制定出解决方案,我刚刚工作了基于该链接的答案: How to play audio file located on server in asp.net

在这个链接的结尾给了你Dewplayer zip包的位置。下载并将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

你需要创建一个文件说音频。 ashx并将其放入根文件夹。希望这可以帮到你。