帮忙看看这段代码,为什么有错误!!!如果解决!
将音乐MP3文件存储到数据库的image类型里!            OpenFileDialog sf = new OpenFileDialog();
            sf.Filter = "(*.mp3)|*.mp3";
            sf.ShowDialog();
            Image img = Image.FromFile(sf.FileName);
            conn = new SqlConnection(connectString);
            cmd = new SqlCommand("Update Mucis Set mucis=(@img) where id=1", conn);
            cmd.Parameters.Add(new SqlParameter("@img", SqlDbType.Image));
            MemoryStream ms = new MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);            cmd.Parameters[0].Value = ms.ToArray();
            cmd.Connection.Open();
            cmd.ExecuteNonQuery();
            cmd.Connection.Close();
            ms.Close();

解决方案 »

  1.   

    大哥 System.Drawing.Imaging.ImageFormat.Jpeg 哪有把mp3转jpg的道理啊,直接用流读取存储就可以了
      

  2.   

    funxu
    有没代码丫,给我看看,流的存储,,
    是不是存储路径?
      

  3.   


    public static void Add( string filePath)
            {
                FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);            byte[] myMp3 = br.ReadBytes((int)fs.Length);            br.Close();
                fs.Close();            SqlConnection cn = new SqlConnection("db conn str...... ");
                SqlCommand cmd = new SqlCommand("INSERT   INTO   Test( Mp3)   VALUES   ( @Mp3) ", cn);
                
                cmd.Parameters.Add("@Mp3 ", SqlDbType.Image, myMp3.Length).Value = myMp3;            cn.Open();
                cmd.ExecuteNonQuery();
                cn.Close();
            }
    试试
      

  4.   

    楼主把音乐MP3文件存储到数据库的image类型里是想做什么?你是想把MP3保存在数据库里吗?如果是,就把路径保存在数据库里,读取的时候,调用路径就好了。
      

  5.   

    xiaomingtage
    我想吧音乐文件保存在数据库中
      

  6.   

    存成2进制的文件,以image类型存储
      

  7.   

    读取文件 得到 byte[] 数组 直接存
      

  8.   

    LZ,是这句代码出错:mage img = Image.FromFile(sf.FileName);Image是用来加载图像格式文件的,如果文件没有有效的图像格式,或者如果 GDI+ 不支持文件的像素格式,则此方法将引发 OutOfMemoryException 异常。你把代码改成:
    try

                   FileStream fs = new FileStream(@"c:\test.mp3", FileMode.Open, FileAccess.Read);
                    BinaryReader br = new BinaryReader(fs);
                    byte[] myMp3 = br.ReadBytes((int)fs.Length);                br.Close();
                    fs.Close();               //后面的还是用你的代码

    catch(Exception ex)
    {
    }
    另外,提个建议:写代码加上try{}catch{}语句,这样帮你定位代码出错位置!
                 
      

  9.   

    强烈不建议文件入库,blob file 也不建议!太依赖数据库了!二进制存读的时候严重占用数据库资源。blob file和直接存地址没区别。还是直接存文件地址吧。手上一个项目把html文本入库了,运行五年,数据库已经4个多G了,机器本来就老慢的要死。
      

  10.   

    严重同意存路径和文件名的方法。直接用linq to sql 调用数据库更简单。