Witam mam problem z zapisem do bazy mam taki oto dgv w programie:
|Data|Uwaga|
Tablica ma budowę (access):
|Data|Uwaga|PESEL|
Wszystkie kolumny ustawione Wymagane: NIE
Kod:
access_com = "INSERT INTO Uwagi (Data, Uwaga, PESEL) VALUES (@data, @Uwaga, @PESEL)";
OleDbCommand zapis = new OleDbCommand(access_com, conn);
foreach (DataGridViewRow dgvr in this.dataGridView2.Rows)
{
try
{
access_com = "INSERT INTO Uwagi (Data, Uwaga, PESEL) VALUES (@Data, @Uwaga, @PESEL)";
zapis = new OleDbCommand(access_com, conn);
zapis.Parameters.AddWithValue("@Data", dgvr.Cells[0].Value.ToString());
zapis.Parameters.AddWithValue("@Uwaga", dgvr.Cells[1].Value.ToString());
zapis.Parameters.AddWithValue("@PESEL", textBox6.Text);
zapis.ExecuteNonQuery();
zapis.Parameters.Clear();
}
catch
{
MessageBox.Show("Nie zapisane....")
}
}
Problem polega na tym, że jak program napotka jakąś komórkę pustą to nie zapisze mi danego wiersza do bazy i wywali błąd:
"Object reference not set to an instance of an object.", który pojawia się przy:
zapis.Parameters.AddWithValue("@data", dgvr.Cells[0].Value.ToString());
lub
zapis.Parameters.AddWithValue("@Uwaga", dgvr.Cells[1].Value.ToString());
zależy która z tych komórek będzie pusta.
Natomiast jeśli wszystkie komórki w danym wierszu są uzupełnione to zapisze do bazy.
To samo dotyczy wiersza na kolejne dane np.
| Data | Uwaga |
| 02.10.2009 | 1uwaga |
| 04.11.2009 | 2uwaga |
| | | <- wiersz na nowe dane, które dgv dodaje automatycznie.
Program zapisze 2 pierwsze wiersze, a przy ostatnim pokaże błąd.
Będę wdzięczny za pomoc.