Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQ更新数据集中的特定单元格_C#_Sql Server_Linq_Datatable_Dataset - Fatal编程技术网

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

C# 使用LINQ更新数据集中的特定单元格,c#,sql-server,linq,datatable,dataset,C#,Sql Server,Linq,Datatable,Dataset,当我只知道用户的帐号时,我想知道如何更新数据库(平衡单元)中的特定井 我不知道这会在数据库里的什么地方。我只是知道帐号存在,因为我已经通过它登录了 为此,我需要使用LINQ,并且我已经尝试查询数据库以找到平衡。尽管如此,我希望将余额更新为特定值,而不是查找当前值 在SQL中,我会执行以下操作: UPDATE UserData SET Balance = some value in this case an int being passed in WHERE AccNo = the account

当我只知道用户的帐号时,我想知道如何更新数据库(平衡单元)中的特定井

我不知道这会在数据库里的什么地方。我只是知道帐号存在,因为我已经通过它登录了

为此,我需要使用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 DataSet
Linq to Objects
的子集。您可以使用它来查询
数据集
/
数据表
,但不能使用它来更新行

因此,您可以使用LINQ搜索相关的
数据行
,然后使用循环更新它们

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);
DataTable tblUserData=dataSet.Tables[“UserData”];
var rowsithaccount=来自tblUserData.AsEnumerable()中的行
其中row.Field(“AccountNumber”)==AccountNumber//replace``为正确的类型
选择行;
foreach(行SwitAccount中的数据行)
行设置字段(“平衡”,新平衡);
更新值后,可以使用
SqlDataAdapter
更新数据库:


数据集不包含单元格。这是一个数据表的集合。我已经能够在数据集中检索到特定的平衡。这就是为什么我认为它有单元格。谢谢你的回答!这是一个轻微的修改工作,所以我已经接受了它作为答案,虽然附上我的修改。我更改了where row.Field(“AccountNumber”)==要转换的AccountNumber.ToString(row[“AccountNo”])==AccountNumber,并且它工作时没有字符串错误。@Paul:然后使用正确的数据类型(我已经用
//替换为正确的类型对其进行了注释)。我猜是个数字,可能是个整数。然后使用
where row.Field(“AccountNumber”)==int.Parse(AccountNumber)
row.Field(“AccountNumber”).ToString()==AccountNumber