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

Responder a