![](/img/trans.png)
[英]I want textbox column should be DateTime column in a datagridview in C#?
[英]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.