【问题标题】:Select and updating data from datatable从数据表中选择和更新数据
【发布时间】:2014-01-25 06:52:01
【问题描述】:

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

DataRow[] result = table.Select("Size >= 230 AND Sex = 'm'");

现在我更改了数据行数组结果中的数据,并且我想更新我的数据表(数据表应该得到更改)。哪种方法最简单?

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

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

【问题讨论】:

    标签: c# select datatable recordset


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这是更新数据表数据的一种方式......

      DataRow[] HRow = dataSet1.Tables["Human"].Select("Size >= 230 AND Sex = 'm'");
      
      HRow[0]["Size"] = 230;
      
      HRow[0]["Sex"] = "m";
      

      【讨论】:

      • 这对我来说很好用!我认为 Hrow 将是一个独立的数据行。
      • @user2871190 是的。它是您表中的行。与您的 result 对象相同
      【解决方案3】:

      我的想法是,当您从 DataTable.Select 更新一行时,datatable 知道更改,但我不确定,因为我从未遇到过类似的情况。 我认为 Datarow.AcceptChanges 会做你想做的事。但在使用 (AcceptChanges) 之前,请确保您确实有类似的问题。

      【讨论】:

        猜你喜欢
        • 2013-07-16
        • 1970-01-01
        • 2021-03-15
        • 1970-01-01
        • 2012-04-28
        • 2012-12-10
        • 1970-01-01
        • 1970-01-01
        • 2021-04-03
        相关资源
        最近更新 更多