Witam serdecznie wszytkich Użytkowników, którzy trafili do tego postu.
Mój pierwszy problem polega na tym, że gdy wybiorę Row z DataGridView, następnie opcje USUŃ to rekord kasuje się zgodnie z zasadą programu. Problem polega, gdy Użytkownik nie zaznaczy żadnego pola i kliknie USUŃ, wtedy aplikacja wyrzuca błąd i przerywa działanie programu.
Kod wygląda tak:
int poz = dataGridView1.SelectedRows[0].Index;
int id = Convert.ToInt32(dataGridView1.Rows[poz].Cells["id"].Value);
DialogResult dialog = MessageBox.Show("Chcesz usunąć obecny rekord? " , "Delete", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
string cnStr = @"Server=.\SQLEXPRESS;Database=MojaBaza;Trusted_Connection=True;";
SqlConnection con = new SqlConnection(cnStr);
con.Open();
SqlCommand cmd = new SqlCommand("DELETE FROM APLIKACJA where id = @id", con);
cmd.Parameters.Add("@id", id);
cmd.ExecuteNonQuery();
con.Close();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM aplikacja", con);
DataTable ds = new DataTable();
da.Fill(ds);
dataGridView1.DataSource = ds;
dataGridView1.Update();
con.Close(); ;
MessageBox.Show("Rekord został usunięty");
}
else if(dialog == DialogResult.No)
{
string cnStr = @"Server=.\SQLEXPRESS;Database=MojaBaza;Trusted_Connection=True;";
SqlConnection con = new SqlConnection(cnStr);
con.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM aplikacja", con);
DataTable ds = new DataTable();
da.Fill(ds);
dataGridView1.DataSource = ds;
dataGridView1.Update();
con.Close();
}
else if(poz <= -1)
{
MessageBox.Show("Błąd! Proszę podać zawartość do usunięcia.");
}
}
Drugi problem jest pewnie łatwiejszy do rozwiązania, lecz nie potrafię niegdzie znaleźć odpowiedzi. Chcę aby wartości z DataGridView do ComboBox i do RichTextBox i tak się dzieje, niestety problem jest z NumericUpDown, jakieś propozycje?
Oto kod:
if(e.RowIndex >= 0)
{
DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
//int id = Convert.ToInt32(dataGridView1.Rows[0].Cells["id"].Value);
comboBox1.Text = this.dataGridView1.CurrentRow.Cells[1].Value.ToString();
comboBox2.Text = this.dataGridView1.CurrentRow.Cells[2].Value.ToString();
comboBox3.Text = this.dataGridView1.CurrentRow.Cells[3].Value.ToString();
richTextBox1.Text = this.dataGridView1.CurrentRow.Cells[4].Value.ToString();
numericUpDown1.Value = this.dataGridView1.CurrentRow.Cells[5].Value.ToString();