我必须从我的表bill_version中得到reports,在那里账单数最大
bill_version**)** (可以有多个具有相同值但按其分类的票据编号)
我是C#的新手,不知道相应的语法。到目前为止,我能够得到变量maxBillNumber中的最大票据数。我不想为获得该账单版本而运行另一个查询。如何根据我的需要修改这段代码?
下面是代码:
int maxBillNumber =0;
if (dt1.Rows.Count > 0)
{
foreach (DataRow dr in dt1.Rows)
{
int bill_number1 = dr.Field<int>("bill_number");
maxBillNumber = Math.Max(maxBillNumber, bill_number1);
}
}提前感谢!
编辑
我必须获得另一个列bill_version的最大值,该列对应于包含bill_number的最大行,而无需运行另一个查询。
bill_number bill_version
1 0
2 0
3 0
4 1
4 2
4 3 我已经获得了4。现在我必须得到相应的3
发布于 2017-01-18 06:02:19
var table = new DataTable();
table.Columns.Add("BillNumber", typeof(int));
table.Columns.Add("BillVersion", typeof(int));
// Here we add five DataRows.
table.Rows.Add(1, 0);
table.Rows.Add(2, 0);
table.Rows.Add(3, 0);
table.Rows.Add(4, 1);
table.Rows.Add(4, 2);
table.Rows.Add(4, 3);
var dataRows = table.AsEnumerable().ToList();
var result = dataRows.OrderByDescending(x => x.ItemArray[0]).ThenByDescending(x => x.ItemArray[1]).FirstOrDefault();
if (result != null)
{
Console.WriteLine(result.ItemArray[0].ToString());
Console.WriteLine(result.ItemArray[1].ToString());
}发布于 2017-01-18 06:04:00
int maxBillNumber = Convert.ToInt32(dt1.Compute("max([bill_number])", string.Empty));
DataRow[] result = dt1.Select("bill_number = " + maxBillNumber);
foreach (DataRow row in result)
{
Console.WriteLine("{0}", row[0]);
}https://stackoverflow.com/questions/41711550
复制相似问题