• List&LinQ


    DataTable会将整个数据表接收过来,可真正使用的数据未必是整个数据表所有的数据。

    使用List可以接收需要使用的数据

    public class Data_Model
        {
            public string Shift { get; set; }
            public string Line { get; set; }
            public string SO { get; set; }
            public string RefNo { get; set; }
            public string PartNo { get; set; }
            public string SoQty { get; set; }
            public string chgSoQty { get; set; }
            public string PlanStartTime { get; set; }
            public string WaitMin { get; set; }
            public string Remark { get; set; }
            public string StartTime{ get; set; }
          
    }
    View Code
    List<Data_Model> list = new List<Data_Model>();
                for (int m = 0; m < dt.Rows.Count; m++)
                {
                    Data_Model model = new Data_Model();
                    model.Shift = dt.Rows[m]["Shift"].ToString();
                    model.Line = dt.Rows[m]["Line"].ToString();
                    model.SO = dt.Rows[m]["So"].ToString();
                    model.RefNo = dt.Rows[m]["RefNo"].ToString();
                    model.SoQty = dt.Rows[m]["SoQty"].ToString();
                    model.chgSoQty = dt.Rows[m]["chgSoQty"].ToString();
                    model.StartTime = dt.Rows[m]["StartTime"].ToString();
                    model.PlanStartTime = dt.Rows[m]["PlanStartTime"].ToString();
                    model.WaitMin = dt.Rows[m]["WaitMin"].ToString();
                    model.Remark = dt.Rows[m]["Remark"].ToString();
                    list.Add(model);
                }
    View Code

    定义一个类用来作为接收数据的对象,并且类中含有需要接收的属性。将对象添加到List中。GridTable接受List.

    通过List可以选择性的接收部分数据,此外List中的数据也会进行筛选,显示部分满足 条件的信息。

    筛选List信息

    if (cboLine.Text != "ALL" && cboSO.Text != "ALL" && cboStatus.Text == "ALL")
                {
                    list = list.Where(a => a.Line.Contains(cboLine.Text) && a.SO.Contains(cboSO.Text)).ToList();
                }

    筛选List使用的是Where方法,根据下拉框中的筛选包含条件,可多个也可单个。

    List获取每行的某个值

    例如获取每行的状态,将其改变。

    int coun = grdData.RowCount;
                for (int i = 0; i < coun; i++)
                {
                    grdData.Rows[i].Cells["RowID"].Value = i + 1;
                }
                for (int j = 0; j < coun; j++)
                {
                    if (grdData.RowCount > 0)
                    {
                        if (list[j].Status.ToString().Equals(""))
                        {
                            strRefStatus = "EMPTY";
                        }
                        else
                        {
                            strRefStatus = list[j].Status.ToString();
                        }
                        if (strRefStatus != "FULL")
                        {
                            strStatus = "";
                            if (strRefStatus == "EMPTY")
                            {
                                strStatus = "备料";
                            }
                            if (strStatus == "PREPARE")
                            {
                                strStatus = "备料中";
                            }
                            if (strRefStatus == "WAIT")
                            {
                                strStatus = "等待";
                            }
                        }
                    }
                    grdData.Rows[j].Cells["Status"].Value = strStatus;
                }
    View Code

     LinQ查询

    LINQ查询
    从LinQ查询中生成新的DataTable
    Static void BuildDataTableFromQuery(DataTable data)
    {
    var cars= from car in data.AsEnumerable()
                   where
                   car.id>5
                   select car;.
    DataTable newTable =cars.CopyToDataTable();//使用该结果集来构建新的DataTable
    
    }
  • 相关阅读:
    五、mariadb遇到的坑——Linux学习笔记
    四、CentOS 安装mariadb——Linux学习笔记
    [搬运] C# 这些年来受欢迎的特性
    [搬运] 写给 C# 开发人员的函数式编程
    [搬运]在C#使用.NET设计模式的新观点
    在容器中利用Nginx-proxy实现多域名的自动反向代理、免费SSL证书
    [翻译]在 .NET Core 中的并发编程
    [翻译] 使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据
    .NET Core:使用ImageSharp跨平台处理图像
    .NET Core开源组件:后台任务利器之Hangfire
  • 原文地址:https://www.cnblogs.com/cdjbolg/p/11756931.html
Copyright © 2020-2023  润新知