Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# 如何在DataGridView C中存储变量和选择位置_C# - Fatal编程技术网

C# 如何在DataGridView C中存储变量和选择位置

C# 如何在DataGridView C中存储变量和选择位置,c#,C#,我有这组代码,它将返回SELISHILLOADSCHACT列的总和,其中列SCHLOADSUBVESS等于变量SUBVESELNAME,列SCHLOADSCURE等于SUBVOAGENO to变量,数据类型为double,称为SisaSelisihSchLoad 现在的问题是,我如何选择?不是总和?我尝试将sum更改为select,但它返回错误,还是select语句有问题 编辑:更新问题 如何像在查询中一样使用%?例如,从表中选择Column,其中Column1类似于'SubVesselName

我有这组代码,它将返回SELISHILLOADSCHACT列的总和,其中列SCHLOADSUBVESS等于变量SUBVESELNAME,列SCHLOADSCURE等于SUBVOAGENO to变量,数据类型为double,称为SisaSelisihSchLoad

现在的问题是,我如何选择?不是总和?我尝试将sum更改为select,但它返回错误,还是select语句有问题

编辑:更新问题


如何像在查询中一样使用%?例如,从表中选择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();