1

几天来我一直在寻找解决这个问题的方法,但我还没有找到任何解决方案。我正在用 C# 构建一个玩具音频播放器,并且我的计算机上有一个包含所有音乐文件的小型 Access 数据库。当我将此数据库导入 DataTable 然后导入 aDataGridView时,我会得到这样的方形字符(无法在此处发布图像,所以这是一个链接):

http://imgur.com/4UwJSxE

据我所知,这些字符在数据库中不存在。有人告诉我尝试该ToString().Trim()方法,但我不知道如何使用 SQL 来构建 DataTable。

这是代码:

public static DataTable GetLibraryDataTable()
    {
        OleDbConnection cnx = bTunesDB.GetConnection();
        cnx.Open();
        OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT Artist, Title, Album, ReleaseYear, Genre, PlayCount, TrackOrderInAlbum, AlbumOrderInArtist, FilePath FROM Tracks ORDER BY Artist, AlbumOrderInArtist, TrackOrderInAlbum", cnx);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        return dt;
    }

然后填充datagridview:

LibraryDataView.DataSource = bTunesDB.GetLibraryDataTable();

我尝试使用此代码修剪 DataTable 值,但问题仍然存在:

var dataRows = dt.AsEnumerable();
foreach (var row in dataRows)
{
      var cellList = row.ItemArray.ToList();
      row.ItemArray = cellList.Select(x => x.ToString().Trim(null)).ToArray();
}

有人知道为什么会这样吗?我希望它是某种字符集设置或其他东西,但我对DataTablesand不是很熟悉DataGridView

4

0 回答 0