private void btnModificar_Click(object sender, EventArgs e) { var currentRow = dgvAutores.CurrentRow; if (currentRow != null) { Autor autor = new Autor { Nombre = currentRow.Cells["nombreDataGridViewTextBoxColumn"].Value.ToString(), Nacionalidad = currentRow.Cells["nacionalidadDataGridViewTextBoxColumn"].Value.ToString(), Nacimiento = currentRow.Cells["nacimientoDataGridViewTextBoxColumn"].Value.ToString(), Muerte = currentRow.Cells["muerteDataGridViewTextBoxColumn"].Value.ToString() }; var autorInfoForm = new AutoresInfoForm(autor); if (autorInfoForm.ShowDialog() == DialogResult.OK) { if (autorInfoForm.Autor != null) { if (IsConnected) { autoresTableAdapter.Update(autorInfoForm.Autor.Nombre, autorInfoForm.Autor.Nacimiento, autorInfoForm.Autor.Muerte, autorInfoForm.Autor.Nacionalidad, Convert.ToInt32( currentRow.Cells["idAutorDataGridViewTextBoxColumn"].Value)); autoresTableAdapter.Fill(librosDataSet.autores); // IMPORTANTE!!! Si se quita esta línea no se actualizará el dataGridView. } else { librosDataSet.autores[currentRow.Index].Nombre = autorInfoForm.Autor.Nombre; librosDataSet.autores[currentRow.Index].Nacimiento = autorInfoForm.Autor.Nacimiento; librosDataSet.autores[currentRow.Index].Nacimiento = autorInfoForm.Autor.Nacimiento; librosDataSet.autores[currentRow.Index].Muerte = autorInfoForm.Autor.Muerte; dgvAutores.DataSource = librosDataSet.autores; } } } } }
public AutoresInfoForm(Autor autor = null) { InitializeComponent(); Autor = autor; if (autor != null) { txtNombre.Text = autor.Nombre; txtNacionalidad.Text = autor.Nacionalidad; string[] blabla = autor.Nacimiento.Split(';'); txtLugarNacimiento.Text = blabla[0]; string[] ddd = blabla[1].Split(new string[] { "de" }, StringSplitOptions.None); DateTime nacimiento; if (ddd[1].Contains("enero")) { nacimiento = new DateTime(int.Parse(ddd[2]), 1, int.Parse(ddd[0])); } else if (ddd[1].Contains("febrero")) { nacimiento = new DateTime(int.Parse(ddd[2]), 2, int.Parse(ddd[0])); } else if (ddd[1].Contains("marzo")) { nacimiento = new DateTime(int.Parse(ddd[2]), 3, int.Parse(ddd[0])); } else if (ddd[1].Contains("abril")) { nacimiento = new DateTime(int.Parse(ddd[2]), 4, int.Parse(ddd[0])); } else if (ddd[1].Contains("mayo")) { nacimiento = new DateTime(int.Parse(ddd[2]), 5, int.Parse(ddd[0])); } else if (ddd[1].Contains("junio")) { nacimiento = new DateTime(int.Parse(ddd[2]), 6, int.Parse(ddd[0])); } else if (ddd[1].Contains("julio")) { nacimiento = new DateTime(int.Parse(ddd[2]), 7, int.Parse(ddd[0])); } else if (ddd[1].Contains("agosto")) { nacimiento = new DateTime(int.Parse(ddd[2]), 8, int.Parse(ddd[0])); } else if (ddd[1].Contains("septiembre")) { nacimiento = new DateTime(int.Parse(ddd[2]), 9, int.Parse(ddd[0])); } else if (ddd[1].Contains("octubre")) { nacimiento = new DateTime(int.Parse(ddd[2]), 10, int.Parse(ddd[0])); } else if (ddd[1].Contains("noviembre")) { nacimiento = new DateTime(int.Parse(ddd[2]), 11, int.Parse(ddd[0])); } else if (ddd[1].Contains("diciembre")) { nacimiento = new DateTime(int.Parse(ddd[2]), 12, int.Parse(ddd[0])); } else { nacimiento = new DateTime(); } try { dtNacimiento.Value = nacimiento; } catch (ArgumentOutOfRangeException) { MessageBox.Show(this, "Error al obtener información de la base de datos.\nVerifique que el mes esté en el formato correcto.\nSe mostrará la fecha de Nacimiento como el día de hoy.\n\nTip: Generalmente es ocasionado por tener el número del mes y no el nombre.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } string[] blabla1 = autor.Muerte.Split(';'); txtLugarMuerte.Text = blabla1[0]; if (blabla1.Length == 2) { string[] strings = blabla1[1].Split(new string[] { "de" }, StringSplitOptions.None); DateTime muerte; if (strings[1].Contains("enero")) { muerte = new DateTime(int.Parse(strings[2]), 1, int.Parse(strings[0])); } else if (strings[1].Contains("febrero")) { muerte = new DateTime(int.Parse(strings[2]), 2, int.Parse(strings[0])); } else if (strings[1].Contains("marzo")) { muerte = new DateTime(int.Parse(strings[2]), 3, int.Parse(strings[0])); } else if (strings[1].Contains("abril")) { muerte = new DateTime(int.Parse(strings[2]), 4, int.Parse(strings[0])); } else if (strings[1].Contains("mayo")) { muerte = new DateTime(int.Parse(strings[2]), 5, int.Parse(strings[0])); } else if (strings[1].Contains("junio")) { muerte = new DateTime(int.Parse(strings[2]), 6, int.Parse(strings[0])); } else if (strings[1].Contains("julio")) { muerte = new DateTime(int.Parse(strings[2]), 7, int.Parse(strings[0])); } else if (strings[1].Contains("agosto")) { muerte = new DateTime(int.Parse(strings[2]), 8, int.Parse(strings[0])); } else if (strings[1].Contains("septiembre")) { muerte = new DateTime(int.Parse(strings[2]), 9, int.Parse(strings[0])); } else if (strings[1].Contains("octubre")) { muerte = new DateTime(int.Parse(strings[2]), 10, int.Parse(strings[0])); } else if (strings[1].Contains("noviembre")) { muerte = new DateTime(int.Parse(strings[2]), 11, int.Parse(strings[0])); } else if (strings[1].Contains("diciembre")) { muerte = new DateTime(int.Parse(strings[2]), 12, int.Parse(strings[0])); } else { muerte = new DateTime(); } try { dtMuerte.Value = muerte; } catch (ArgumentOutOfRangeException) { MessageBox.Show(this, "Error al obtener información de la base de datos.\nVerifique que el mes esté en el formato correcto.\nSe mostrará la fecha de Muerte como el día de hoy.\n\nTip: Generalmente es ocasionado por tener el número del mes y no el nombre.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { Autor = new Autor(); } }