当我所知道的是用户帐号时,我很想知道如何更新数据库中的特定井(余额单元)。
我不知道数据库中的位置。我只知道帐号已存在,因为我已通过它登录。
我需要使用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数据库中更新。我打算通过从数据库中检索所有内容并进行更新/合并声明来完成此操作。
知道如何解决这个问题吗?
答案 0 :(得分:2)
Linq-To-DataSet
是Linq-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
更新数据库: