linq问题(弱弱的问)

njrc 2010-10-14 10:16:43
初学linq,边学边用,感觉很模糊,遇到一问题
数据库有一张表,我用linq查询,现想根据另一个linq查询来更新前一个linq查询的结果,只在内存中,比如
var result = from x in db.kj
where……
select x;
var result1 = from y in db.sj
where……
select y;
foreach(var a in result)
{
if(a.* = *)
{
foreach(var b in result1)
{
b.* +=1;
}
}
}
报错,说b.*是只读属性,我估计我对linq的理解太肤浅,看书一时也找到答案,不用linq,好像用datatable可以直接修改摸一个cell的值,现在是不是非要读取一个datatable?网上也看了.tolist等方法,但看的都是一个值,而我要的是一张表中筛选出若干条记录中某一个字段值的修改,怎么做?最好能来点具体代码示例,谢谢先!
...全文
234 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
njrc 2010-10-15
  • 打赏
  • 举报
回复
我的代码没贴全:
var result = from x in db.kj
where……
select x;
var result1 = from y in db.sj
where……
select y;
foreach(var a in result)
{
if(a.* = *)
{
foreach(var b in result1)
{
if(b.* == *)
{ b.* +=1;}
}
}
}
刀枪blue 2010-10-15
  • 打赏
  • 举报
回复
foreach能修改?
q107770540 2010-10-15
  • 打赏
  • 举报
回复


var result = from x in db.kj
join y in db.sj
on x.xy equals y.xy
where x.x>15 && y.y>15
select y.z;

result =result.ForEach(r=>r.z+=1);


njrc 2010-10-15
  • 打赏
  • 举报
回复
var result = from x in db.kj
where……
select x;
var result1 = from y in db.sj
where……
select y;
foreach(var a in result)
{
if(a.x >15)
{
foreach(var b in result1)
{
if(b.y > 15 && b.xy == a.xy)
{ b.z +=1;}
}
}
}
njrc 2010-10-15
  • 打赏
  • 举报
回复
是想首先查找KJ表,如果KJ表中的某一条一个字段A的值等于x,则把SJ表中某一字段B的值等于y的记录的z字段值加1.
var result = from x in db.kj
where……
select x;
var result1 = from y in db.sj
where……
select y;
foreach(var a in result)
{
if(a.x >15)
{
foreach(var b in result1)
{
if(b.y > 15)
{ b.z +=1;}
}
}
}
owenxin26 2010-10-15
  • 打赏
  • 举报
回复
你最好详细把自己的需求描述一下。你给出的代码和你的描述都不是很清晰。从变量名称中也看不出意思,星号*也不知道代表的是乘法还是个属性名。。。a.* = *也不知道是想给a赋值还是想判断等于。。。总之没完全看懂。。。

按照我的理解,你是想首先查找KJ表,如果KJ表中的一个字段A的值等于x,则把SJ表中所有字段B的值等于x的记录将其B的值加1.

njrc 2010-10-15
  • 打赏
  • 举报
回复
乱了,捋一捋,我的需求是:第一个查询得到一个符合条件的resulte,第二个查询得到一个符合条件的result1,两个之间有一个字段值会有相同,现在想做的是根据第一个resulte,查找第二个result1中字段值以第一个相等且resulte1中的另一个字段值并且大于15,然后+=1,最后返回resulte1。9楼的似乎得不到我想要的结果
njrc 2010-10-14
  • 打赏
  • 举报
回复
再顶!请具体点!
njrc 2010-10-14
  • 打赏
  • 举报
回复
具体点!行吗?
wuyq11 2010-10-14
  • 打赏
  • 举报
回复
select new T{y.a,y.b}
再修改
njrc 2010-10-14
  • 打赏
  • 举报
回复
自己想的玩,因为有好几个表要读入内存,进行逻辑处理,两种方法(死办法):1、用datatable;2、先把每一个linq查询结果写入数据库(根据查询结果新建表),再用linq查过来,然后submitchange,??????????头晕

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧