该DataView对象没有Rows像这样的属性DataTable.
如何遍历DataView的行?
根据ebidel的答案,可以使用jDataView读取id3v1标签:
document.querySelector('input[type="file"]').onchange = function (e) {
var reader = new FileReader();
reader.onload = function (e) {
var dv = new jDataView(this.result);
// "TAG" starts at byte -128 from EOF.
// See http://en.wikipedia.org/wiki/ID3
if (dv.getString(3, dv.byteLength - 128) == 'TAG') {
var title = dv.getString(30, dv.tell());
var artist = dv.getString(30, dv.tell());
var album = dv.getString(30, dv.tell());
var year = dv.getString(4, dv.tell());
} else {
// no ID3v1 data found.
}
};
reader.readAsArrayBuffer(this.files[0]);
};
Run Code Online (Sandbox Code Playgroud)
Chrome和其他浏览器现在已经实现了DataView(我只对Chrome感兴趣).我很好奇是否有人知道如何:
我需要使用自然排序(在资源管理器中)对DataGridView进行排序,以便数字和文本(在同一列中)自然排序,而不是按字母顺序排序(以便"位置3"位于"位置20"之前,等等).我有一个DataGridView,我将DataView设置为DataSource.DataView包含一个DataTable,它是使用数据库中的某些值创建的.列类型是字符串.我有一个IComparer,它做了应有的事情,但我无法弄清楚如何使用它,因为我无法找到如何进行排序.DataGridView.SortCompare事件是完美的,因为它是数据绑定的,所以不起作用.DataView.Sort只接受具有列名和排序顺序的字符串.
很烦人.试图在StackOverflow上阅读相关问题,并搜索谷歌的很多和很多,但我真的找不到这个.只有我真正找到的东西是使用dataview的Sort(字符串)方法,因为它按字母顺序排序.
有没有人知道如何做到这一点没有太多麻烦?它应该是别人而不是我这个?我真的不想重新实现整个datagridview或dataview类,只是为了获得自定义排序...
更新:如果有人想知道,我仍然在寻找这个问题的好答案.虽然与此同时,我最终创建了自己的简单表类,然后手动将其提供给datagridview.覆盖SortCompare方法.有点烦人,但并不太难,因为我只需要显示值(没有编辑或任何东西),因此可以将所有内容转换为字符串.
我需要将数据视图复制到数据表中.似乎唯一的方法是逐项遍历数据视图并复制到数据表.一定有更好的方法.
我有以下方法:
private DataTable getsortedtable(DataTable dt)
{
dt.DefaultView.Sort = "Name desc";
//I would need to return the datatable sorted.
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法更改此方法的返回类型,我必须返回一个DataTable但我想将它返回排序.
是否有dt.DefaultView的魔法隐藏属性返回dt排序?
非常感谢提前.
最好的祝福.
我正在摸索一些相当愚蠢而又显然很难的东西.
DataView dvFormula = dsFormula.Tables[0].DefaultView;
dvFormula.RowFilter = "'" + startDate.ToString("yyyyMMdd") + "' < EndDate OR EndDate = '19000101'";
dvFormula.Sort = "FromDate ASC";
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
无法对System.String和System.DateTime执行'<'操作.
请告诉我解决这个问题的最佳方法是什么.
非常感激!
在我的项目中有两个数据表dtFail和dtFailed(dtFailed除了列名声明之外).dtFail具有重复的"EmployeeName"列值.所以我采用了数据视图dvFail并完成了使它们分离的过程,如下面的代码所示:
dtFail

我尝试了下面的代码:
DataView dvFail = new DataView(dtFail);
dtFail = dvFail.ToTable(true, "EmployeeName"); //showing only one column in dtFail
Run Code Online (Sandbox Code Playgroud)
dtFailed(只有一列)

如果我喜欢下面的话
DataView dvFail = new DataView(dtFail);
dtFail = dvFail.ToTable(true, "EmployeeName","EmployeeRole","Status");
Run Code Online (Sandbox Code Playgroud)
dtFailed(显示但有重复的行)

然后数据表dtFailed也存储重复的"EmployeeName".
请
提前帮助
谢谢.
可以或如何将DataRow转换为DataRowView?
例如:
DataTable dt=ds.Tables[0];
DataRow dr= dt.NewRow();
DataRowView drv = ????
Run Code Online (Sandbox Code Playgroud) 有一种优雅的方法,将预定义的dataGridView列与SQL语句的结果绑定在一起吗?
例:
dataGridView1.Columns.Add("EID", "ID");
dataGridView1.Columns.Add("FName", "FirstName");
Run Code Online (Sandbox Code Playgroud)
有些SQL喜欢
SELECT t.FirstName AS FName, t.EmpID AS EID
FROM table t ...
Run Code Online (Sandbox Code Playgroud)
然后我打电话
dataGridView1.DataSource = someDataSet.Tables[0].DefaultView;
Run Code Online (Sandbox Code Playgroud)
最后一次调用将列添加到我的数据网格中,但我只想按列名绑定它而不是添加新列.
该示例将给出如下结果:
表列:ID,FirstName,FName,EID(ID和FirstName包含空单元格)
怎么弄这个:
Table columns: ID, FirstName or FirstName, ID
Run Code Online (Sandbox Code Playgroud)
最好的祝福!
dataview ×10
c# ×7
datatable ×4
datagridview ×2
.net ×1
asp.net ×1
data-binding ×1
datarowview ×1
dataset ×1
date-format ×1
datetime ×1
filereader ×1
gwt ×1
id3 ×1
java ×1
javascript ×1
loops ×1
paging ×1
rowfilter ×1
sorting ×1
winforms ×1