[英]Fill DataGridView data from SQL table and populate a GridView ComboBox from a different SQL Server table
[英]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.