La Web del Programador: Comunidad de Programadores
 
    Pregunta:  58970 - ELIMINAR FILA DE GRIDVIEW SIN BD
Autor:  Manuel Galvez
Estimados:

Tengo el siguiente problema, tengo un Gridview que se carga con datos de unos Textbox (Todo esto en C#), pero cabe la posibilidad de que una ves subidos los datos al Gridview estos esten malos..por A,B o C motivo..por lo tanto hay que borrar la fila mala seleccionada..., con eso no hay problema..puedo borrar los datos de la fila que selecciono, pero el problema esta en que me deja la fila en blanco...es decir borra los datos, no asi la fila, como puedo quitar la fila que queda en blanco.?

todas las soluciones que encontre lo hacen sacando de una BD, pero yo saco los datos de Textbox...

muy agradecido de antemano...

  Respuesta:  Carlos R Serrano
Hola Colega, prueba esto a ver si te funciona:

Supongamos que voy a crear una aplicación en la que tengo un dataGridView en el que voy a cargar datos desde texBoxs y no desde BD.

//Creo variables de tipo DataSet  y  DataTable


private DataSet dataS;
private DataTable tabla;


private void Form1_Load(object sender, EventArgs e)
{

//Creo una extructura para contener mis datos

dataS = new DataSet();
tabla = new DataTable();
DataColumn[] columnas = new DataColumn[4];
columnas[0] = new DataColumn("Nombre");
columnas[1] = new DataColumn("Apellidos");
columnas[2] = new DataColumn("Edad");
columnas[3] = new DataColumn("Sexo");
tabla.Columns.AddRange(columnas);
dataS.Tables.Add(tabla);
dataGridView1.DataSource = dataS.Tables[0];
}

private void buttonCargarDatos_Click(object sender, EventArgs e)
{
//Esto carga los datos de los textBoxs en el dataGridView

string[] datos = new string[4];
datos[0] = textBox1.Text;
datos[1] = textBox2.Text;
datos[2] = textBox3.Text;
datos[3] = textBox4.Text;

tabla.Rows.Add(datos);
}

private void buttonEliminarFila_Click(object sender, EventArgs e)
{
//Esta es la funcion que elimina los datos de la fila seleccionada del dataGridView
//y tambien eliminala fila.

dataS.Tables[0].Rows.RemoveAt(dataGridView1.CurrentRow.Index);
}