繁体   English   中英

从SQL表在我的dataGridView上手动填充数据

[英]Populate data manually on my dataGridView from sql table

我是c#的新手,我想手动将sql列绑定到dataGridView列。 我不想分配数据表如下。

SqlDataAdapter da = new SqlDataAdapter();
                        da.SelectCommand = cmd;
                    DataTable dt = new DataTable();
                    da.Fill(dt);

                    dgvAttendance.DataSource = dt;

我想通过调用它们的名称将sql列绑定到datagridview列。 我想要这样做是因为我需要在列的左侧添加一个dataGridViewCheckBoxColumn。 但是,如果我在分配数据源之前添加了dataGridViewCheckBoxColumn列,则该列发生在0索引上。 我需要它在最右边的列上。

*我需要两个解决方案。

您可以改为使用SqlDatareader ,如下所示(假设您有3列):

DataTable dt = new DataTable();
DataGridTableStyle tableStyle = new DataGridTableStyle();
dt.Columns.Add(new DataColumn("ColumnName1", typeof(string)));
dt.Columns.Add(new DataColumn("ColumnName2", typeof(string)));
dt.Columns.Add(new DataColumn("ColumnName3", typeof(string)));
columnStyle = new DataGridTextBoxColumn();
columnStyle.Width = 50;
columnStyle.MappingName = "ColumnName1";
columnStyle.HeaderText = "ColumnName1";
tableStyle.GridColumnStyles.Add(columnStyle);
DataGridTextBoxColumn cs;
cs = new DataGridTextBoxColumn();
cs.MappingName = "ColumnName2";
cs.Width = 160;
cs.HeaderText = "ColumnName2";
tableStyle.GridColumnStyles.Add(cs);
DataGridTextBoxColumn cs2;
cs2 = new DataGridTextBoxColumn();
cs2.MappingName = "ColumnName3";
cs2.Width = 100;
cs2.HeaderText = "ColumnName2";
tableStyle.GridColumnStyles.Add(cs2);
dataGrid1.TableStyles.Clear(); ///dataGrid1 is the name of your DataGridView
dataGrid1.TableStyles.Add(tableStyle);        
SqlDataReader reader = cmd.ExecuteReader();
DataRow dr;
while (reader.Read())
{
    dr = dt.NewRow();
    dr[0]=reader[0].ToString();
    dr[1]=reader[1].ToString();
    dr[2]=reader[2].ToString();
}
DataView dv = new DataView(dt);
dataGrid1.DataSource =dv;
reader.Close();

暂无
暂无

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

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