C# 如何在DataGridView C中存储变量和选择位置
我有这组代码,它将返回SELISHILLOADSCHACT列的总和,其中列SCHLOADSUBVESS等于变量SUBVESELNAME,列SCHLOADSCURE等于SUBVOAGENO to变量,数据类型为double,称为SisaSelisihSchLoad 现在的问题是,我如何选择?不是总和?我尝试将sum更改为select,但它返回错误,还是select语句有问题 编辑:更新问题C# 如何在DataGridView C中存储变量和选择位置,c#,C#,我有这组代码,它将返回SELISHILLOADSCHACT列的总和,其中列SCHLOADSUBVESS等于变量SUBVESELNAME,列SCHLOADSCURE等于SUBVOAGENO to变量,数据类型为double,称为SisaSelisihSchLoad 现在的问题是,我如何选择?不是总和?我尝试将sum更改为select,但它返回错误,还是select语句有问题 编辑:更新问题 如何像在查询中一样使用%?例如,从表中选择Column,其中Column1类似于'SubVesselName
如何像在查询中一样使用%?例如,从表中选择Column,其中Column1类似于'SubVesselName%'如果您想要所有单独的值,则需要对要获取的值调用SELECT,然后将它们放入IEnumerable 我使用下面的var让编译器为我选择类型,这样在类型更改时就不必更新它。如果要指定它,它可以是从IEnumerable派生的任何内容,例如List、decimal[]等 关于你的案子 Sum=>返回双精度 选择=>返回IEnumerable 范例 //存储SELISHILLOADSCHACT的总和 双SisaSelisihSchLoad=dgv_bulkclink.Rows.Cast .where=>Convert.ToStringr.Cells[SchLoadSubVessel]。Value==SubVesselName&&Convert.ToStringr.Cells[SchLoadVessel]。Value==SubVoyageNo .Sumt=>Convert.ToInt32t.Cells[SELISHILLOADSCHACT].Value; //SELISHILLOADSCHACT的存储列表 IEnumerable SisaSelisihSchLoad=dgv_bulkclink.Rows.Cast .where=>Convert.ToStringr.Cells[SchLoadSubVessel]。Value==SubVesselName&&Convert.ToStringr.Cells[SchLoadVessel]。Value==SubVoyageNo .Selectt=>Convert.ToInt32t.Cells[SELISHILLOADSCHACT].Value;
C是强类型的,所以若您只是从Sum更改为Select,那个么当您试图将集合分配给double时,您会得到错误的类型 您可以将Sum更改为Select,但也可以更改SisaSelisihSchLoad的类型。您可以使用var,让Visual自己计算出来, 或者您可以声明double[]或List之类的内容,并在Select之后调用附加方法ToArray或ToList
你想选择它是什么意思?您想要数据行DataGridViewRow吗?或者所有单个值都是十进制的?我只想要单个值,就像您如何使用select column from table(其中column1=a和column2=b更新)从多行和多列中获取单个值一样。我如何使用%就像在查询中一样?例如,从表中选择Column,其中Column1类似于'SubVesselName%'这确实回答了我的问题,但事实证明我需要在变量中使用%,例如SubVesselName,我如何使它像查询从表中选择列,其中列1='SubVesselName%'?@radren很遗憾,这不可能是您想要的方式。@MichałTurczyn string.StartsWith呢?
double SisaSelisihSchLoad = dgv_bulkclink.Rows.Cast<DataGridViewRow>()
.Where(r => Convert.ToString(r.Cells["SchLoadSubVessel"].Value) == SubVesselName && Convert.ToString(r.Cells["SchLoadVessel"].Value) == SubVoyageNo)
.Sum(t => Convert.ToInt32(t.Cells["SelisihLoadSchAct"].Value));
var SisaSelisihSchLoads = dgv_bulkclink.Rows.Cast<DataGridViewRow>()
.Where(r => Convert.ToString(r.Cells["SchLoadSubVessel"].Value) == SubVesselName
&& Convert.ToString(r.Cells["SchLoadVessel"].Value) == SubVoyageNo)
.Select(t => Convert.ToDecimal(t.Cells["SelisihLoadSchAct"].Value));
var SisaSelisihSchLoads = dgv_bulkclink.Rows.Cast<DataGridViewRow>()
.Where(r => Convert.ToString(r.Cells["SchLoadSubVessel"].Value).StartsWith(SubVesselName)
&& Convert.ToString(r.Cells["SchLoadVessel"].Value) == SubVoyageNo)
.Select(t => Convert.ToDecimal(t.Cells["SelisihLoadSchAct"].Value));
var SisaSelisihSchLoad = dgv_bulkclink.Rows.Cast<DataGridViewRow>()
.Where(r => Convert.ToString(r.Cells["SchLoadSubVessel"].Value) == SubVesselName && Convert.ToString(r.Cells["SchLoadVessel"].Value) == SubVoyageNo)
.Select(t => Convert.ToInt32(t.Cells["SelisihLoadSchAct"].Value));
double[] SisaSelisihSchLoad = dgv_bulkclink.Rows.Cast<DataGridViewRow>()
.Where(r => Convert.ToString(r.Cells["SchLoadSubVessel"].Value) == SubVesselName && Convert.ToString(r.Cells["SchLoadVessel"].Value) == SubVoyageNo)
.Select(t => Convert.ToInt32(t.Cells["SelisihLoadSchAct"].Value)).ToArray();
Lisst<double> SisaSelisihSchLoad = dgv_bulkclink.Rows.Cast<DataGridViewRow>()
.Where(r => Convert.ToString(r.Cells["SchLoadSubVessel"].Value) == SubVesselName && Convert.ToString(r.Cells["SchLoadVessel"].Value) == SubVoyageNo)
.Select(t => Convert.ToInt32(t.Cells["SelisihLoadSchAct"].Value)).ToList();