I made this code its working fine but when it get to the last row for insert I get this error because datagridview is empty now.
: 'Object reference not set to an instance of an object.' System.Windows.Forms.DataGridViewCell.Value.get returned null.
the whole insert query is working but at the same time this error pop up so I need to somehow stop the for loop before getting error
string sourceDb = @"D:\backup.accdb";
OleDbConnection con1 = new OleDbConnection($"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={sourceDb};Persist Security Info=True");
DataTable dt;
con1.Open();
OleDbDataAdapter adapter;
dt = new DataTable();
adapter = new OleDbDataAdapter("select * from [Mosavabeh]", con1);
adapter.Fill(dt);
dataGridView1.DataSource = dt;
con1.Close();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
OleDbConnection con2 = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\CheckDatabase.accdb;Persist Security Info=True");
con2.Open();
string query = "Insert into [Mosavabeh] (ID,MosavabehDate,MosavabehNumber,LoanName,LoanType,LoanAmount) VALUES(@ID, @MosavabehDate , @MosavabehNumber , @LoanName , @LoanType , @LoanAmount)";
OleDbCommand cmd = new OleDbCommand(query);
cmd = new OleDbCommand(query, con2);
cmd.Parameters.AddWithValue("@ID", this.dataGridView1.Rows[i].Cells["ID"].Value.ToString());
cmd.Parameters.AddWithValue("@MosavabehDate", this.dataGridView1.Rows[i].Cells["MosavabehDate"].Value.ToString());
cmd.Parameters.AddWithValue("@MosavabehNumber", this.dataGridView1.Rows[i].Cells["MosavabehNumber"].Value.ToString());
cmd.Parameters.AddWithValue("@LoanName", this.dataGridView1.Rows[i].Cells["LoanName"].Value.ToString());
cmd.Parameters.AddWithValue("@LoanType", this.dataGridView1.Rows[i].Cells["LoanType"].Value.ToString());
cmd.Parameters.AddWithValue("@LoanAmount", this.dataGridView1.Rows[i].Cells["LoanAmount"].Value.ToString());
cmd.ExecuteNonQuery();
con2.Close();
}
MessageBox.Show("restore complete");