后面的数字是码率 按理说96的应该在最后面 可是现在的排序貌似是按首字母排的System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("D:\\Avril Lavigne-Tik Tok\\128");
            string parameter = "";//存放所有参数
            DataTable dt = new DataTable();
            dt.Columns.Add("filename");
            dt.Columns.Add("bitRate");
            
            foreach (System.IO.FileInfo file in dir.GetFiles())
            {
                MediaInfo MI = new MediaInfo();
                MI.Open("D:\\Avril Lavigne-Tik Tok\\128\\" + file.Name);                string bitRate = MI.Get(StreamKind.Audio, 0, "BitRate/String");//视频码率
                MI.Close();                DataRow drf = dt.NewRow();
                drf["filename"] = file.Name;
                drf["bitRate"] = Convert.ToInt32(bitRate.Replace(" Kbps", "").Replace(".0", ""));
                //dt.Columns["bitRate"].Expression = "Convert(bitRate, 'System.Int32')";
                dt.Rows.Add(drf);                
                
                //parameter = parameter + "\r\n" + file.Name.Substring(0, file.Name.LastIndexOf(".")) + ":" + bitRate;
                
                //file.FullName; // 全名
                //file.Name; // 文件名
                //file.Length; // 文件大小
            }            
            DataView dv = new DataView(dt);
            dv.Sort = "bitRate desc";
            dataGridView1.DataSource = dv;            parameter = dv.Table.ToString();            txtInfo.Text = parameter;
这是代码  我理解应该是bitRate列默认为了字符串类型,但是//dt.Columns["bitRate"].Expression = "Convert(bitRate, 'System.Int32')"; 没法在循环中使用  也没法修改数据库(因为就没有使用数据库)
求大神们给个解决办法DataGridViewDataVIew排序