Korzystanie z VB.Net
Chcę uzyskać wszystkie wartości komórek datagrid, a następnie wstawić do table1.
Kod
cmd = New SqlCommand("insert into table1 values("" & DataGrid.Rows(0).Cells(0).Value & "", "" & DataGrid.Rows(0).Cells(1).Value & "", "" & DataGrid.Rows(0).Cells(2).Value & "", "" & DataGrid.Rows(0).Cells(3).Value & "")", con)
cmd.ExecuteNonQuery()
Powyższy kod wstawia pierwszy wiersz wartości komórki datagrid, ale chcę wstawić wszystkie wartości komórek datagrid
Jak zmodyfikować mój kod, aby uzyskać całą wartość komórki datagrid.
Odpowiedzi:
1 dla odpowiedzi № 1Trzymanie się istniejącego kodu, pomimo jego wad (na pewno sprawdź: Injection SQL)
Możesz zrobić coś takiego:
For Each row As DataGridViewRow in dataGrid.Rows
cmd = New SqlCommand("insert into table1 values("" & row.Cells(0).Value & "", "" & row.Cells(1).Value & "", "" & row.Cells(2).Value & "", "" & row.Cells(3).Value & "")", con)
cmd.ExecuteNonQuery()
Next
Istnieje wiele ulepszeń, które można wprowadzić, ale to odpowiada na twoje pytanie:
0 dla odpowiedzi nr 2
Przede wszystkim: unikaj SQL Injection przy użyciu parametrów
Następnie: Zapętlić wszystkie wiersze i wstawić je
Pseudo kod:
foreach(var row in DataGid.Rows)
{
insert();
}