2013-11-22 23 views
6

Tôi có đoạn code sau đây:lập trình tạo ra DataGridView từ DataTable

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; 

Khi tôi kiểm tra grid, thuộc tính DataSource chỉ ra rằng số hàng là chính xác. Tuy nhiên, số lượng grid.Rows là bằng không.

Ngược lại, nếu tôi tạo DataGridView trên biểu tượng thắng, sau đó gán DataSource thành DataTable, DataGridView.Rows sẽ được thêm tự động.

Tôi thiếu mã nào ở đây, để có số DataGridView.Rows được chính xác?

+0

Câu hỏi là màn hình là gì? Chính xác? – OneFineDay

+0

Nếu bạn không thêm các cột và chỉ cần chỉ định bảng làm nguồn dữ liệu, hãy hiển thị các hàng? – rune711

+0

Thuộc tính 'AutoGenerateColumns'? – OneFineDay

Trả lời

5

Bằng cách thêm điều này DataGridView kiểm soát biểu mẫu theo cách lập trình, nó hoạt động :) Bất kỳ ai sẽ cho chúng tôi biết lý do?

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; 
0
DataTable table = new DataTable(); 

//DataTable is filled with values here... 

DataGridView grid = new DataGridView(); 

grid.DataSource = table; 

Hoặc

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; 

} 

Cố Bộ luật này

0
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); 
      }   
} 

đi đến từng chi tiết website: http://laptrinhvb.net/bai-viet/chuyen-de-csharp/Lap-trinh-ung-dung-them---xoa---sua-truc-tiep-tren-DataGridview-(Crub-database-on-DataGridview-use-Cshap)/e95de75579022678.html

+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần quan trọng của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - http://stackoverflow.com/help/how-to-answer –

Các vấn đề liên quan