我使用以下代码从我的数据表中选择数据:
DataRow[] result = table.Select("Size >= 230 AND Sex = 'm'");
现在我更改了datarow-array结果中的数据,我想更新我的数据表(datatable应该得到更改)。哪种方法最简单?
在VB6中我可以简单地在记录集上设置一个过滤器,编辑我的行并简单地保存我的更改。是否有类似的方式使用DataTables?
修改
我还有一个问题。什么,如果我想添加一个新行,我想重用相同的代码?
例如:
filteredRows = myDataset.Tables[0].Select("select where id = 1");
if (filteredRow.Lenght == 0) {
filteredRows = myDataset.Tables[0].NewRow();
}
// I wanna use this code, no matter if I edit a row, or if it is a new row.
filteredRows[index]["Name"] = "Max";
filteredRows[index]["Address"] = "Random Address";
filteredRows[index]["WhatEver"] = "...";
//...
我试过这种方式,但它不会影响原始数据集。
答案 0 :(得分:8)
这是更新数据表数据的一种方法....
DataRow[] HRow = dataSet1.Tables["Human"].Select("Size >= 230 AND Sex = 'm'");
HRow[0]["Size"] = 230;
HRow[0]["Sex"] = "m";
答案 1 :(得分:1)
我有一个想法,当你从DataTable.Select更新一行时,datatable知道这些变化,但我不确定,因为我从未遇到类似的事情。 我认为Datarow.AcceptChanges会做你想要的。但在使用(AcceptChanges)之前,请确保您确实遇到类似的问题。
答案 2 :(得分:0)
DataRow [] dr = dt.Select(" ItemCode =" + ItemCode); {
dr[0]["ItemName"] = txtItemName.Text;
dr[0]["ItemName"] = txtItemName.Text;
dr[0]["GroupCode"] = txtGroup.Text;
dr[0]["Price"] = txtPrice.Text;
dr[0]["Descriptions"] = txtDescriptions.Text;
}