Hola podes probar pasando el parametro como string, con formato de fecha
corta, puede ser que el proveedor de datos oledb se encargue de la conversión.
sql.Parameters.Add("@date", OleDbType.Date).Value =
Convert.ToDateTime(item[4].ToString()).ToShortDateString();
o puede ser:
sql.Parameters.Add("@date", OleDbType.VarChar).Value = "'" +
Convert.ToDateTime(item[4].ToString()).ToShortDateString() + "'";
en un insert sin parámetros en algun sistema que me toco hacer insertaba asi:
insert into tabla (Campo_Fecha) values("'" + Fecha.ToShortDateString() + "'")
________________________________
De: Pepe Ballaga <[email protected]>
Para: [email protected]
Enviado: Miércoles, octubre 19, 2011 11:32 A.M.
Asunto: [puntonet] problema con campo fecha al insertar en access
Holaa amigos tengo la siguiente instruccion para
ejecutar en .net 2010 y me funciona perfectamente hasta que le incluyo tambien
el campo de fecha (es el ultimo) ¿alguien tiene un ejemplo de como insertar
valores de fecha en una tabla de access?. aca pongo el ejemplo
completo
OleDbConnectionconexion = newOleDbConnection(conect);
OleDbCommandcomando = newOleDbCommand("delete from
TablaImportada", conexion);
conexion.Open();
comando.ExecuteNonQuery();
conexion.Close();
OleDbCommandsql = newOleDbCommand("insert into tablaimportada (cip, csusername,
cagent, scauthenticated, scomputername, csreferred, rhost, rip,
rport,timetaken,
csbytes, scbytes, csprotocol, soperation, csuri, sobjectsource, scstatus, rule,
FilterInfo, csNetwork, scNetwork, errorinfo, date ) values (@cip, @csusername,
@cagent, @scauthenticated, @scomputername, @csreferred, @rhost, @rip, @rport,
@timetaken, @csbytes, @scbytes, @csprotocol, @soperation, @csuri,
@sobjectsource, @scstatus, @rule, @FilterInfo, @csNetwork, @scNetwork,
@errorinfo, @date )", conexion);
sql.Parameters.Clear();
sql.Parameters.Add("@cip", OleDbType.VarChar).Value = item[0];
sql.Parameters.Add("@csusername", OleDbType.VarChar).Value = item[1];
sql.Parameters.Add("@cagent", OleDbType.VarChar).Value = item[2];
sql.Parameters.Add("@scauthenticated", OleDbType.VarChar).Value = item[3];
sql.Parameters.Add("@scomputername", OleDbType.VarChar).Value = item[6];
sql.Parameters.Add("@csreferred", OleDbType.VarChar).Value = item[7];
sql.Parameters.Add("@rhost", OleDbType.VarChar).Value = item[8];
sql.Parameters.Add("@rip", OleDbType.VarChar).Value = item[9];
sql.Parameters.Add("@rport", OleDbType.Numeric).Value =
Convert.ToInt32(item[10]);
sql.Parameters.Add("@timetaken", OleDbType.Numeric).Value =
Convert.ToInt32(item[11]);
sql.Parameters.Add("@csbytes", OleDbType.Numeric).Value =
Convert.ToInt32(item[12]);
sql.Parameters.Add("@scbytes", OleDbType.Numeric).Value =
Convert.ToInt32(item[13]);
sql.Parameters.Add("@csprotocol", OleDbType.VarChar).Value = item[14];
sql.Parameters.Add("@soperation", OleDbType.VarChar).Value = item[15];
sql.Parameters.Add("@csuri", OleDbType.VarChar).Value = item[16];
sql.Parameters.Add("@sobjectsource", OleDbType.VarChar).Value = item[17];
sql.Parameters.Add("@scstatus", OleDbType.VarChar).Value = item[18];
sql.Parameters.Add("@rule", OleDbType.VarChar).Value = item[19];
sql.Parameters.Add("@FilterInfo", OleDbType.VarChar).Value = item[20];
sql.Parameters.Add("@csNetwork", OleDbType.VarChar).Value = item[21];
sql.Parameters.Add("@scNetwork", OleDbType.VarChar).Value = item[22];
sql.Parameters.Add("@errorinfo", OleDbType.VarChar).Value = item[23].ToString()
;
//aca esta el problema con el parámetro de tipo fecha en
realidad en item[4] solo hay fecha, no hay hora ni minuto ni segundos
sql.Parameters.Add("@date", OleDbType.Date).Value =
Convert.ToDateTime(item[4].ToString());conexion.Open();
sql.ExecuteNonQuery();
conexion.Close();
¿alguna idea de como solucionar esto?. muuuchas
gracias
PEPE