几天来我一直在寻找解决这个问题的方法,但我还没有找到任何解决方案。我正在用 C# 构建一个玩具音频播放器,并且我的计算机上有一个包含所有音乐文件的小型 Access 数据库。当我将此数据库导入 DataTable 然后导入 aDataGridView
时,我会得到这样的方形字符(无法在此处发布图像,所以这是一个链接):
据我所知,这些字符在数据库中不存在。有人告诉我尝试该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();
}
有人知道为什么会这样吗?我希望它是某种字符集设置或其他东西,但我对DataTables
and不是很熟悉DataGridView
。