2010-03-07 17 views

Odpowiedz

16

można otworzyć dowolną komórkę DGV następująco:

dataGridView1.Rows[rowIndex].Cells[columnIndex].Value = value; 

Ale usu sprzymierzeńca lepiej jest użyć wiązania danych: wiążesz DGV ze źródłem danych (DataTable, kolekcja ...) przez właściwość DataSource i działa tylko na samym źródle danych. DataGridView automatycznie odzwierciedlają zmiany, a zmiany dokonane na DataGridView zostaną odzwierciedlone w źródle danych

+0

Na której nawet możemy edytować i dodawać wartość i zapisywać ją do bazy danych – SurajSing

11

Jest to idealne kod ale nie można dodać nowy wiersz:

dataGridView1.Rows[rowIndex].Cells[columnIndex].Value = value; 

Ale ten kod można wstawić nowy wiersz:

this.dataGridView1.Rows.Add(); 
this.dataGridView1.Rows[0].Cells[1].Value = "1"; 
this.dataGridView1.Rows[0].Cells[2].Value = "Baqar"; 
+0

Jestem prawie pewny, że indeks nie jest poprawiony w drugim przykładzie. – quantum

+0

Więc nie jest idealny, ponieważ nie może dodać nowego wiersza? :) –

0

Możesz użyć tej funkcji, jeśli chcesz dodać dane do bazy danych za pomocą przycisku. Mam nadzieję, że to pomoże.

// dgvBill is name of DataGridView 

string StrQuery; 
try 
{ 
    using (SqlConnection conn = new SqlConnection(ConnectingString)) 
    { 
     using (SqlCommand comm = new SqlCommand()) 
     { 
      comm.Connection = conn; 
      conn.Open(); 
      for (int i = 0; i < dgvBill.Rows.Count; i++) 
      { 
       StrQuery = @"INSERT INTO tblBillDetails (IdBill, productID, quantity, price, total) VALUES ('" + IdBillVar+ "','" + dgvBill.Rows[i].Cells[0].Value + "', '" + dgvBill.Rows[i].Cells[4].Value + "', '" + dgvBill.Rows[i].Cells[3].Value + "', '" + dgvBill.Rows[i].Cells[2].Value + "');"; 
       comm.CommandText = StrQuery; 
       comm.ExecuteNonQuery();   
      } 
     } 
    } 
} 
catch (Exception err) 
{ 
    MessageBox.Show(err.Message , "Error !"); 
} 
3

z jakiegoś powodu nie mogłem dodać numery (format string) do DataGridView Ale ten pracował dla mnie Mam nadzieję, że komuś pomóc!

//dataGridView1.Rows[RowCount].Cells[0].Value = FEString3;//This was not adding Stringed Numbers like "1","2","3".... 
DataGridViewCell NewCell = new DataGridViewTextBoxCell();//Create New Cell 
NewCell.Value = FEString3;//Set Cell Value 
DataGridViewRow NewRow = new DataGridViewRow();//Create New Row 
NewRow.Cells.Add(NewCell);//Add Cell to Row 
dataGridView1.Rows.Add(NewRow);//Add Row To Datagrid 
0
int index= datagridview.rows.add(); 
datagridview.rows[index].cells[1].value=1; 
datagridview.rows[index].cells[2].value="a"; 
datagridview.rows[index].cells[3].value="b"; 

nadzieja ta pomoc! :)

Powiązane problemy