2013-11-22 25 views
6
DataTable

DataGridView oluşturun. Ancak, grid.Rows sayısı sıfırdır. Buna karşılıkProgramlı Aşağıdaki kod var

, bir winform bir DataGridView oluşturmak ve sonra onun DataSource bir DataTable için atarsanız, DataGridView.Rows otomatik olarak eklenecektir.

DataGridView.Rows sayımının doğru olması için burada hangi kod eksik?

+0

Soru ekran nedir nedir? Doğru? – OneFineDay

+0

Sütunları eklemezseniz ve tabloyu bir veri kaynağı olarak belirtmezseniz, satırlar görüntülenir mi? – rune711

+0

'AutoGenerateColumns' özelliği? – OneFineDay

cevap

5

Bu DataGridView kontrolünü program aracılığıyla ekleyerek işe yarar :) Kimse bize nedenini anlatacak?

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; 

Ya

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; 

} 

bu kod

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

deneyin web ayrıntı gidin: 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

'u deneyin. Bu bağlantı soruyu yanıtlayabilirken, cevabın temel parçalarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - http://stackoverflow.com/help/how-to-answer –