繁体   English   中英

我想把记录放在一列天 Datagridview

[英]I want to put the Record in a column of days Datagridview

我想把记录放在一列 days 中 每一列天都必须有自己的状态 图片显示了datagridview whit day

DataTable dt = new DataTable();
    DataTable dt1 = new DataTable();
    //this line of code used to connect to the server and locate the database (usermgt.mdb)
    static string connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Application.StartupPath + "/Med11.mdb";
    OleDbConnection conn = new OleDbConnection(connection);
string sql = "Select matricule ,statut,day from Table1";
        OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
        string sql1 = "Select statut from Table1 where idengin=1";
        OleDbDataAdapter da1 = new OleDbDataAdapter(sql1, conn);
        da.Fill(dt);
        da1.Fill(dt1);
        // dataGridView1.Columns["Old Column Name"].HeaderText =dt;
        dataGridView1.Columns[0].Name = "Matricule";
        dataGridView1.Columns[0].HeaderText = "Matricule";
        dataGridView1.Columns[0].DataPropertyName = "matricule";
        if (dataGridView1.Columns[5].Visible)
        {

            //this.dataGridView1.Rows[3].Cells[0].Value = "new value";  


           // dataGridView1.Columns[6].DataPropertyName = "day";
           /// dataGridView1.Rows[2].Cells[2].Value = "day";

        }

看看下面的代码是否是你想要的:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //create input data
            DataTable dt1 = new DataTable();
            dt1.Columns.Add("Matricule", typeof(int));
            for (int i = 1; i <= 31; i++)
            {
                dt1.Columns.Add(i.ToString(), typeof(string));
                dt1.Columns[i.ToString()].AllowDBNull = true;
            }
            dt1.Rows.Add(new object[] { 177, null, "AP", null, null, null, null, "AP" });
            dt1.Rows.Add(new object[] { 178, null, "AC", null, null, null, null, null, "AC" });
            dt1.Rows.Add(new object[] { 198, null, "AM", null, null, null, "AM" });
            dt1.Rows.Add(new object[] { 122, null, "AD", null, null, null, null, null, null, "AD" });
            dt1.Rows.Add(new object[] { 167, null, "AF", null, null, null, null, "AF" });
            dt1.Rows.Add(new object[] { 199, null, "AS", null, null, null, null,  null, "AS" });

            DataTable dt2 = new DataTable();
            dt2.Columns.Add("Matricule", typeof(int));
            dt2.Columns.Add("Day", typeof(int));
            dt2.Columns.Add("Name", typeof(string));

            foreach(DataRow row in dt1.AsEnumerable())
            {
                object[] rowData1 = row.ItemArray;
                for (int col = 1; col < rowData1.Length - 1; col++)//do not include last column
                {
                    if (rowData1[col] != DBNull.Value)
                    {
                        DataRow rowData2 = dt2.Rows.Add();
                        rowData2["Matricule"] = rowData1[0];
                        rowData2["Day"] = col.ToString();
                        rowData2["Name"] = rowData1[col];
                    }
                }

            }

            DataTable dt3 = new DataTable();
            var groups = dt2.AsEnumerable().GroupBy(x => x.Field<int>("Matricule")).ToList();

            dt3.Columns.Add("Matricule", typeof(int));
            for (int i = 1; i <= 31; i++)
            {
                dt3.Columns.Add(i.ToString(), typeof(string));
                dt3.Columns[i.ToString()].AllowDBNull = true;
            }
            foreach (var group in groups)
            {
                DataRow newRow = dt3.Rows.Add();
                newRow["Matricule"] = group.Key;
                foreach (DataRow row in group)
                {
                    newRow[row.Field<int>("Day")] = row.Field<string>("Name");
                }
            }

        }
    }
}

见下图:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM