C# 从sql表在my dataGridView上手动填充数据

C# 从sql表在my dataGridView上手动填充数据,c#,sql-server-2012,datagridviewcolumn,C#,Sql Server 2012,Datagridviewcolumn,我是c#的新手。我想手动将sql列绑定到dataGridView列。我不想按如下方式分配数据表 SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; DataTable dt = new DataTable(); da.Fill(dt); dgvAtt

我是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();