使用 LINQ 更新数据集中的特定单元格

Update specific cell in Dataset with LINQ

我想知道如何更新数据库中的特定井(余额单元格),而我只知道用户帐号。

我不知道它在数据库中的什么位置。我只知道账号存在,因为我是通过它登录的。

为此我需要使用 LINQ,我已经尝试查询数据库以找到余额。虽然,我想将余额更新为特定值,但找不到当前值。

在 SQL 中,我会做类似的事情:

UPDATE UserData
SET Balance = some value in this case an int being passed in
WHERE AccNo = the accountNumber variable stored in a global class

但问题是值存储在数据集中,因为客户端正在离线处理数据。一旦他注销,他的数据集就会在 SQL 数据库中更新。我打算通过从数据库中检索所有内容并执行 update/merge 语句来做到这一点。

知道如何解决这个问题吗?

Linq-To-DataSetLinq-To-Objects 的子集。你可以用它来查询一个DataSet/DataTable,但你不能用它来更新行。

因此您可以使用 LINQ 搜索相关 DataRows,然后使用循环更新它们。

DataTable tblUserData = dataSet.Tables["UserData"];
var rowsWithAccount = from row in tblUserData.AsEnumerable()
                      where row.Field<string>("AccountNumber") == accountNumber // replace `<string>` with the right type
                      select row;
foreach(DataRow row in rowsWithAccount)
    row.SetField("Balance", newBalance);

更新值后,您可以使用 SqlDataAdapter 更新数据库:

Updating Data Sources with DataAdapters