从数据表中选择和更新数据

时间:2014-01-07 14:27:47

标签: c# select datatable recordset

我使用以下代码从我的数据表中选择数据:

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"] = "...";
//...

我试过这种方式,但它不会影响原始数据集。

3 个答案:

答案 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;
}