【问题标题】:How can I create a DataGridView displaying tables in restaurant如何创建在餐厅中显示表格的 DataGridView
【发布时间】:2020-12-26 19:13:12
【问题描述】:

您好,我正在编写餐厅自动化程序以提高自己。 我在数据库中有一个名为表的表。 我可以获取数据,如左侧 datagridview 所示。但是我 无法拆分为右侧 datagridview 上的列 我希望我能解释一下。

  private void FrmAnaEkran_Load(object sender, EventArgs e)
    {
       
        VerileriGetir();
    }

    private void VerileriGetir()
    {
        Veritabani vt = new Veritabani();
        vt.ConnectionOpen();
        vt.SqlQuery("select * from masalar");
        DataTable dt = vt.GetDataTable();
        vt.ConnectionClose();
        List<masa> masalar = new List<masa>();
        foreach (DataRow dr in dt.Rows)
        {
            masa m = new masa();
            m.adi = dr[1].ToString();
            masa.ID = Convert.ToInt32(dr[0]);
            masalar.Add(m);
        }
        for (int i = 0; i < masalar.Count; i++)
        {
            int n = dataGridView1.Rows.Add();
            dataGridView1.Rows[n].Cells[0].Value = masalar[i].adi;
        }
    }

【问题讨论】:

  • 在网格视图中数据会按行显示,请尝试使用更适合您情况的Listview。
  • 行...dataGridView1.Rows[n].Cells[0].Value = masalar[i].adi;...只会将值放入第一列...Cells[0]...如果您希望每行填充所有四个单元格,那么您将需要另一种机制,以便代码分配 Cell[0]、Cell[1]、Cell[2] 和 Cell[3]。目前尚不清楚您这样做的“原因”。将数据源分配给网格总是比逐行添加项目更好。

标签: c# datagridview datagridviewcolumn


【解决方案1】:

使用分组:

           DataTable dt = new DataTable();
            dt.Columns.Add("Masa", typeof(string));
            dt.Rows.Add(new object[] { "Masa_1" });
            dt.Rows.Add(new object[] { "Masa_2" });
            dt.Rows.Add(new object[] { "Masa_3" });
            dt.Rows.Add(new object[] { "Masa_4" });
            dt.Rows.Add(new object[] { "Masa_5" });
            dt.Rows.Add(new object[] { "Masa_6" });
            dt.Rows.Add(new object[] { "Masa_7" });
            dt.Rows.Add(new object[] { "Masa_8" });
            dt.Rows.Add(new object[] { "Masa_9" });
            dt.Rows.Add(new object[] { "Masa_10" });
            dt.Rows.Add(new object[] { "Masa_11" });
            dt.Rows.Add(new object[] { "Masa_12" });
            dt.Rows.Add(new object[] { "Masa_13" });

            var groups = dt.AsEnumerable().Select((x, i) => new {masa = x.Field<string>("Masa"), index = i}).GroupBy(x => x.index / 4);

            DataTable dt2 = new DataTable();
            dt2.Columns.Add("Column1", typeof(string));
            dt2.Columns.Add("Column2", typeof(string));
            dt2.Columns.Add("Column3", typeof(string));
            dt2.Columns.Add("Column4", typeof(string));

            foreach(var group in groups)
            {
                DataRow newRow = dt2.Rows.Add();
                int col = 0;
                foreach(var row in group)
                {
                    newRow[col++] = row.masa;
                }
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多