下一步是什么,我有代码,但是我不知道下一步怎么办?

时间:2018-11-13 03:13:23

标签: c#

我是C#的新手,我正尝试用数据库中的数据填充我的datagridview并在某些列上进行分组。

例如:

我有一个datagridview,其中包含:字段,全名和worker_id。

我想从数据库中获取数据并根据字段名称对其进行分组。

public void FillFullSchedule()
    {


        using (SqlConnection sqlcon = new SqlConnection(con))
        {
            sqlcon.Open();
            SqlCommand cmd = new SqlCommand("dbo.FullScheduleData", sqlcon);
            //SqlDataReader reader = cmd.ExecuteReader();

            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            fullScheduleDG.Rows.Clear();
            foreach (DataRow dr in dt.Rows)
            {
                int n = fullScheduleDG.Rows.Add();
                fullScheduleDG.Rows[n].Cells[0].Value = dr[1].ToString();
                fullScheduleDG.Rows[n].Cells[1].Value = dr[0].ToString();
                fullScheduleDG.Rows[n].Cells[2].Value = dr[2].ToString();

            }

        }

    }

没问题。

我有用于对这篇文章中的数据进行分组的代码:

https://stackoverflow.com/a/44807088/10534001

但是我不知道如何使用它。我该怎么办 ??我不知道下一步。

是将事件添加到单元格格式还是类似的内容?

1 个答案:

答案 0 :(得分:0)

使用您需要的3个字段和一个BindingList构建一个类,以将数据填充到DataGrid中。

public class yourClassName
{
     public string field { get; set; }
     public string fullname { get; set; }
     public int worker_id { get; set; }
}
public class yourMainClass
{
     public BindingList<yourClassName> yourDataForGrid { get; }
     public yourMainClass(//this is a constructor.  your params go here)
     {
          yourDataForGrid = GetDataForGrid(//your params here)
     }
}

在您的加载方法中,创建一个新对象并绑定字段:

yourClassName tempThing;
dgNameOfYourDataGrid.DataSource = new BindingSource(tempThing.yourDataForGrid, null);

创建在加载BindingList的构造函数中调用的方法:

 public static BindingList<yourClassName> GetDataForGrid(//your params here)
 {
      BindingList<yourClassName> tempList = new BindingList<yourClassName>();

      //your sql code to build a dataset goes here
      //foreach row in your dataset
      {
           yourClassName row = new yourClassName();
           row.field = //insert value for field
           row.fullname = //insert value for fullname
           row.worker_id = //insert value for worker_id

           tempList.Add(row);
      }
 }