更新数据表sql中的选定行列值

Posted

技术标签:

【中文标题】更新数据表sql中的选定行列值【英文标题】:update selected rows column value in datatable sql 【发布时间】:2016-03-02 07:49:11 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

您忘记在查询中输入Where 条件。

替换这个查询:

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

有了这个:

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

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

为您的数据表行设置一个循环并使用类似这样的方式传递Where 子句参数:dt.Rows[index]["columnName"].ToString()

希望这会有所帮助。

【讨论】:

谢谢,但如果我使用它只会更新一行,我需要更新数据表中的两行 这就是为什么我建议在我的答案中建立一个forforeach 循环来遍历您的数据表行。【参考方案2】:

如果有 100 条记录,则使用 where 子句进行特定行更新,然后在不影响所有行的情况下更新 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();
    

【讨论】:

以上是关于更新数据表sql中的选定行列值的主要内容,如果未能解决你的问题,请参考以下文章

Android,如何从我的数据库更新列表视图中的选定项目?

使用表单提交更新数据库中选定的下拉值

sql语句对数据库表进行加锁和解锁

SQLite:更新具有顺序值的多行列

Django:在视图中使用选定的单选按钮的值来更新数据库中的值

使用表单中的组合框中的选定值访问更新表