C# 如何创建DataGridView来显示餐厅中的桌子
你好,我正在设计一个餐厅自动化系统来提高自己。 我在数据库中有一个名为tables的表。 我可以获取如左datagridview所示的数据。但我 无法像在右侧datagridview上那样拆分为列 我希望我能解释C# 如何创建DataGridView来显示餐厅中的桌子,c#,datagridview,datagridviewcolumn,C#,Datagridview,Datagridviewcolumn,你好,我正在设计一个餐厅自动化系统来提高自己。 我在数据库中有一个名为tables的表。 我可以获取如左datagridview所示的数据。但我 无法像在右侧datagridview上那样拆分为列 我希望我能解释 private void FrmAnaEkran_Load(object sender, EventArgs e) { VerileriGetir(); } private void VerileriGetir()
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;
}
}
private void FrmAnaEkran\u加载(对象发送方,事件参数e)
{
VerileriGetir();
}
私有void VerileriGetir()
{
Veritabani vt=新Veritabani();
连接打开;
vt.SqlQuery(“从masalar中选择*);
DataTable dt=vt.GetDataTable();
连接关闭;
List masalar=新列表();
foreach(数据行dr在dt.行中)
{
masa m=新的masa();
m、 adi=dr[1].ToString();
masa.ID=Convert.ToInt32(dr[0]);
加上(m);
}
for(int i=0;i
使用分组方式:
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;
}
}
DataTable dt=newdatatable();
添加(“Masa”,类型(字符串));
Add(新对象[]{“Masa_1”});
Add(新对象[]{“Masa_2”});
Add(新对象[]{“Masa_3”});
Add(新对象[]{“Masa_4”});
Add(新对象[]{“Masa_5”});
Add(新对象[]{“Masa_6”});
Add(新对象[]{“Masa_7”});
Add(新对象[]{“Masa_8”});
Add(新对象[]{“Masa_9”});
添加(新对象[]{“Masa_10”});
Add(新对象[]{“Masa_11”});
Add(新对象[]{“Masa_12”});
Add(新对象[]{“Masa_13”});
var groups=dt.AsEnumerable().Select((x,i)=>new{masa=x.Field(“masa”),index=i}).GroupBy(x=>x.index/4);
DataTable dt2=新的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组)
{
DataRow newRow=dt2.Rows.Add();
int col=0;
foreach(组中的var行)
{
newRow[col++]=row.masa;
}
}
在网格视图中,数据将以行的形式显示,请尝试使用更适合您的情况的Listview。行…dataGridView1.rows[n]。单元格[0]。Value=masalar[i]。adi
…只将值放入第一列…单元格[0]
…如果希望每行填充所有四个单元格,则需要另一种机制,以便代码分配单元格[0]、单元格[1]、单元格[2]和单元格[3]。不清楚你为什么这样做。将数据源分配给网格总是比逐行添加项更好。