更新datatable sql中的选定行列值

时间:2015-11-28 07:09:13

标签: c# mysql datatable

数据库中有四行。我从中选择了两行并保存在数据表中。我需要更新数据表中两行的日期列。

if (dt.Rows.Count > 0)
{ 
   SqlCommand date1 = new SqlCommand("update OutletId set Date=dateadd(dd,1,Date)", sqlc);
   date1.ExecuteNonQuery();
}

但是上面的查询更新了所有四行。有解决方案吗?

2 个答案:

答案 0 :(得分:1)

您忘记在查询中添加Where条件。

替换此查询:

update OutletId set Date=dateadd(dd,1,Date)

有了这个:

update OutletId set Date=dateadd(dd,1,Date) Where yourField=yourValue

由于您使用的是DataTable,因此您必须使用Where参数传递dt子句的值。

为您的数据表行设置一个循环,并使用以下内容传递Where子句参数:dt.Rows[index]["columnName"].ToString()

希望这有帮助。

答案 1 :(得分:0)

如果有100条记录,则使用where子句进行特定行更新,然后在没有where子句影响所有行的情况下进行更新,因此您需要在表中添加带有主键或唯一键的cluse

    if (dt.Rows.Count > 0)
    {

        SqlCommand date1 = new SqlCommand("update OutletId set Date=dateadd(dd,1,Date) where pk="+primary key, sqlc);
        date1.ExecuteNonQuery();
    }