C sharp - error al grabar desde gridview

   
Vista:

error al grabar desde gridview

Publicado por eduardo (3 intervenciones) el 28/06/2014 20:51:56
hola :

tengo una grilla en la cual ingreso datos para actualizar una base sql express
en el momento de hacer la grabacion el msg que sale es :
"la cadena de entrada no tiene el formato correcto"

el codigo que tengo en el click del boton de grabacion es este:


try
{

foreach (DataGridViewRow row in dgvRecaudacion.Rows) // graba en la base de recaudaciones lo de la grilla
{

string lcChofer1, lcChofer2, lcTurno1, lcTurno2, lcPatente1, lcPatente2, lcTipoGasto, lcFecha;
float lnImp1, lnImp2, lnImpGas, lnSaldo;
if (row.Index < CDias)
{

lcFecha = dgvRecaudacion[0, row.Index].Value.ToString();
lcTurno1 = dgvRecaudacion[1, row.Index].Value.ToString();
lcChofer1 = dgvRecaudacion[2, row.Index].Value.ToString();
lcPatente1 = dgvRecaudacion[3, row.Index].Value.ToString();
lnImp1 = Convert.ToInt32(dgvRecaudacion[4, row.Index].Value);
lcTurno2 = dgvRecaudacion[5, row.Index].Value.ToString();
lcChofer2 = dgvRecaudacion[6, row.Index].Value.ToString();
lcPatente2 = dgvRecaudacion[7, row.Index].Value.ToString();
lnImp2 = Convert.ToInt32(dgvRecaudacion[8, row.Index].Value);
lcTipoGasto = dgvRecaudacion[10, row.Index].Value.ToString();
lnImpGas = Convert.ToInt32(dgvRecaudacion[9, row.Index].Value);
lnSaldo = Convert.ToInt32(dgvRecaudacion[11, row.Index].Value);


comando.Connection = conexion;
comando.CommandText = "insert into Recaudacion(fecharec,turno,chofer1,patente1, imprec1, turno2, chofer2, patente2, imprec2, gasto, tipogas )" +
"Values(@vFecha,@vTurno1,@vchofer1,@vPatente1, @vimp1, @vturno2, @vchofer2, @vpatente2, @vimp2, @vgasto,@vtipogas)";

comando.Parameters.Clear();
comando.Parameters.AddWithValue("vFecha", lcFecha);
comando.Parameters.AddWithValue("vTurno1", lcTurno1);
comando.Parameters.AddWithValue("vchofer1", lcChofer1);
comando.Parameters.AddWithValue("vPatente1", lcPatente1);
comando.Parameters.AddWithValue("vimp1", lnImp1);
comando.Parameters.AddWithValue("vturno2", lcTurno2);
comando.Parameters.AddWithValue("vchofer2", lcChofer2);
comando.Parameters.AddWithValue("vpatente2", lcPatente2);
comando.Parameters.AddWithValue("vimp2", lnImp2);
comando.Parameters.AddWithValue("vgasto", lnImpGas);
comando.Parameters.AddWithValue("vtipogas", lcTipoGasto);



int NFilas = comando.ExecuteNonQuery();

if (NFilas <= 0)
{
llHuboErrores = true;

}
El problema es con los datos numericos del tipo float cuando pongo decimales

si pongo 12.35 o 12,35 ( usando coma o punto de separador decimal ) me tira el error mencionado antes .
en la base sql , estos campos los tengo definidos del tipo float , asi que no entiendo porque me da este error. cuando las variables que uso para el insert son del mismo tipo .
}
.gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

error al grabar desde gridview

Publicado por Pico (114 intervenciones) el 28/06/2014 22:38:46
Tienes que tener el sql y el windows configurado igual en cuanto al signo decimal. Si en uno tienes el punto y en el otro la coma pongas lo que pongas va a darte error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar