以编程方式从DataTable创建DataGridview
我有以下代码:
DataTable table = new DataTable(); //DataTable is filled with values here... DataGridView grid = new DataGridView(); foreach (DataColumn column in table.Columns) { grid.Columns.Add(column.ColumnName, column.ColumnName); } grid.DataSource = table;
当我检查grid
, DataSource
属性指示行数是正确的。 但是, grid.Rows
计数为零。
相反,如果我在winform上创建DataGridView
,然后将其DataSource
分配给DataTable
,则会自动添加DataGridView.Rows
。
我在这里缺少什么代码,以使DataGridView.Rows
计数正确?
通过以编程方式将此DataGridView
控件添加到表单,它可以工作:)任何人都会告诉我们为什么?
DataTable table = new DataTable(); //DataTable is filled with values here... DataGridView grid = new DataGridView(); // assuming (this) is a reference to the current form this.Controls.Add(grid); grid.DataSource = table;
DataTable table = new DataTable(); //DataTable is filled with values here... DataGridView grid = new DataGridView(); grid.DataSource = table;
要么
foreach (DataColumn column in table.Columns) { grid.Columns.Add(column.ColumnName, column.ColumnName); } grid.Rows.Add(table.Rows.count); Int32 i=0; foreach (DataRow rw in table.Rows) { grid.Rows[i].Cell[0].value = rw["col1"].ToString(); i+=1; }
试试这个代码
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { try { if (e.ColumnIndex == 5) { string Task = dataGridView1.Rows[e.RowIndex].Cells[5].Value.ToString(); if ( Task == "Delete") { if (MessageBox.Show("Bạn có chắc chắm muốn xóa không?", "Đang xóa...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { int rowIndex = e.RowIndex; dataGridView1.Rows.RemoveAt(rowIndex); dataset.Tables["tbl_students"].Rows[rowIndex].Delete(); sqlAdapter.Update(dataset, "tbl_students"); } } else if(Task == "Insert") { int row = dataGridView1.Rows.Count - 2; DataRow dr = dataset.Tables["tbl_students"].NewRow(); dr["id"] = dataGridView1.Rows[row].Cells["id"].Value; dr["name"] = dataGridView1.Rows[row].Cells["name"].Value; dr["address"] = dataGridView1.Rows[row].Cells["address"].Value; dr["phone"] = dataGridView1.Rows[row].Cells["phone"].Value; dr["email"] = dataGridView1.Rows[row].Cells["email"].Value; dataset.Tables["tbl_students"].Rows.Add(dr); dataset.Tables["tbl_students"].Rows.RemoveAt(dataset.Tables["tbl_students"].Rows.Count - 1); dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Count - 2); dataGridView1.Rows[e.RowIndex].Cells[5].Value = "Delete"; sqlAdapter.Update(dataset, "tbl_students"); } else if (Task == "Update") { int r = e.RowIndex; dataset.Tables["tbl_students"].Rows[r]["id"] = dataGridView1.Rows[r].Cells["id"].Value; dataset.Tables["tbl_students"].Rows[r]["name"] = dataGridView1.Rows[r].Cells["name"].Value; dataset.Tables["tbl_students"].Rows[r]["address"] = dataGridView1.Rows[r].Cells["address"].Value; dataset.Tables["tbl_students"].Rows[r]["phone"] = dataGridView1.Rows[r].Cells["phone"].Value; dataset.Tables["tbl_students"].Rows[r]["email"] = dataGridView1.Rows[r].Cells["email"].Value; sqlAdapter.Update(dataset, "tbl_students"); dataGridView1.Rows[e.RowIndex].Cells[5].Value = "Delete"; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
转到网站详细信息: http : //laptrinhvb.net/bai-viet/chuyen-de-csharp/Lap-trinh-ung-dung-them—xoa—sua-truc-tiep-tren havenGridview-( Crub-数据库上的DataGridView使用-Cshap)/e95de75579022678.html