28

データテーブルを作成しました。Product_idProduct_name、およびProduct_priceの3 つの列があります。

    Datatable table= new DataTable("Product");

    table.Columns.Add("Product_id", typeof(int));
    table.Columns.Add("Product_name", typeof(string));
    table.Columns.Add("Product_price", typeof(string));

    table.Rows.Add(1, "abc", "100");
    table.Rows.Add(2, "xyz", "200");

ここで、インデックスで検索し、その行を更新したいと思います。

たとえば

Product_name 列の値を、Product_idの値が 2 の "cde"に変更したいと考えています。

4

7 に答える 7

80

まず、id == 2 の行を見つけてから、名前を次のように変更する必要があります。

foreach(DataRow dr in table.Rows) // search whole table
{
    if(dr["Product_id"] == 2) // if id==2
    {
        dr["Product_name"] = "cde"; //change the name
        //break; break or not depending on you
    }
}

次の解決策を試すこともできます。

table.Rows[1]["Product_name"] = "cde" // not recommended as it selects 2nd row as I know that it has id 2

または:

DataRow dr = table.Select("Product_id=2").FirstOrDefault(); // finds all rows with id==2 and selects first or null if haven't found any
if(dr != null)
{
    dr["Product_name"] = "cde"; //changes the Product_name
}
于 2013-10-28T08:14:30.343 に答える