Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/08/2005, 12:46
Avatar de Scour
Scour
 
Fecha de Ingreso: octubre-2003
Ubicación: Murcia (España)
Mensajes: 94
Antigüedad: 21 años, 4 meses
Puntos: 0
Muy buenas, con respecto a la segunda pregunta, si haces el insert con el objeto parameter, te cambiará la fecha automáticamente al formato correcto en base de datos

Código:
private void Page_Load(object sender, System.EventArgs e)
{
 string conexion = "Data Source=localhost;User id=sa;Password=sa;Initial Catalog=agenda";

 SqlConnection con = new SqlConnection (conexion);
 SqlCommand cmd = new SqlCommand("insert into loqsea (fecha) values (@fech)", con);

 cmd.Parameters.Add("@id", SqlDbType.DateTime).Value = DateTime.Parse(MiFecha.Text);

 try
 {
 cmd.ExecuteNonQuery();
 }
 catch (Exception errorMens)
 {

      error.Visible = true;
      error.Text = errorMens.Message;
 }
 finally
 {
      cmd.Connection.Close();
 }
}
A mi así, con parametros no me ha dado problemas nunca cuando los idiomas son distintos, además de que evita el SQL Inyection (cosa más que importante).

Otra forma es meter la fecha en formato YYYYMMDD sin barras (/) por ejemplo 20051202 (02/12/2005).

Con respecto a lo primero, no se si desde la aplicación se puede hacer, por que al hacer la conversión de tipo a DateTime te mete la hora a 0:00:00 si esta no estaba especificada, pero si te haces un procedimiento almacenado de transact-sql, con el objeto DataPart podrás seleccionar lo que quieres insertar.

Otra cosa que puedes hacer es que aunque se inserte la hora en base de datos, no mostrarla en la aplicación:

Código:
Label1.Text = DateTime.Parse(Dataset.Tables[0].Rows[0][0].ToString()).ToShortDateTime();
Y con eso no muestras en la aplicación la hora.

Saludos.