Principales respuestas
como convertir fecha para guardarla en MySQL con visual c-sharp

Pregunta
-
Respuestas
-
De todas formas
esto no lo veo bien... txt5.Text += DateTime.Now.ToString("dd/MM/yyyy");
cuando pulsas f añades la fecha al contenido de txt5?? y si tuviera por ejemplo otra fecha?
txt5.Text = DateTime.Now.ToString("dd/MM/yyyy");
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Propuesto como respuesta Sergio ParraModerator lunes, 20 de mayo de 2013 13:45
- Marcado como respuesta Sergio ParraModerator sábado, 17 de julio de 2021 16:51
-
public void insertar(TextBox txt1, TextBox txt2, TextBox txt3, TextBox txt4, TextBox txt5, TextBox txt6,ComboBox cmb1) { if (txt1.Text == "" || txt2.Text == "" || txt3.Text == "" || txt4.Text == "" || txt5.Text == "" || txt6.Text == "" || cmb1.Text== "") { MessageBox.Show(" Rellene todos los campos", "Campos vacios", MessageBoxButtons.OK, MessageBoxIcon.Stop); txt1.Focus(); } else { using (cnn) { using(SqlCommand cmd = new SqlCommand("Insert into capturar(TP101,DC102,DC103,DC105,FECHA,EXP,DC109) values(?TP101, ?DC102, ?DC103, ?DC105, ?FECHA, ?EXP, ?DC109);", cnn)) { cnn.Open(); cmd.CommandType = Text;
cmd.Connection = cnn; cmd.Parameters.AddWithValue("?TP101", txt1.Text); cmd.Parameters.AddWithValue("?DC102", txt2.Text); cmd.Parameters.AddWithValue("?DC103", txt3.Text); cmd.Parameters.AddWithValue("?DC105", txt4.Text); cmd.Parameters.AddWithValue("?FECHA", Convert.ToDateTime(txt5.Text)); cmd.Parameters.AddWithValue("?EXP", txt6.Text); cmd.Parameters.AddWithValue("?DC109", cmb1.Text); cmd.ExecuteNonQuery(); cnn.Close(); MessageBox.Show("Se ha dado de alta correctamente"); } } } }
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Editado Sergio ParraModerator lunes, 20 de mayo de 2013 13:56
- Marcado como respuesta StangMx lunes, 20 de mayo de 2013 14:01
Todas las respuestas
-
Hola
Porque no le pasas el DateTime? Supongo que el tipo de dato en la Tabla MySQL es DateTime ó Date si es que no te interesa almacenar también hora, minuto y segundos.
Saludos
- Editado Cruznick viernes, 17 de mayo de 2013 18:30 remarqué los tipos de datos en la tabla MySQL
-
.
fecha.ToString("yyyy-MM-dd");
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Editado Sergio ParraModerator viernes, 17 de mayo de 2013 18:16
-
-
También te recomiendo que pases la fecha directamente como datetime, en el parámetro que utilices pasas dicho datetime y la bbdd se encargara de formatearlo...suponiendo que el campo sea datetime en la tabla y no string...saludos
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
-
como es eso que dice el titulo para guardarla ?
para guardar no tiene que aplciar ningun formato, ya que deberias usar parametros
si el campo es del tipo datetime en tu tabla deberias usar
string query = "INSERT INTO NombreTabla (campo1, campo2) VALUES (@param1, @param2)"; using(SqlCommand cmd = new SqlCommand(query, conn)) { cmd.Parameters.AddWithValue("@param1", textbox1.Text); cmd.Parameters.AddWithValue("@param2", Convert.ToDatetime(textbox2.Text)); cmd.ExecuteNonQuery(); } }
o sea le pasas un datetime directo al parametro, no tienes que convertir a ningun formato
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
este es el codigo que tengo para guardar:
public void insertar(TextBox txt1, TextBox txt2, TextBox txt3, TextBox txt4, TextBox txt5, TextBox txt6,ComboBox cmb1) { if (txt1.Text == "" || txt2.Text == "" || txt3.Text == "" || txt4.Text == "" || txt5.Text == "" || txt6.Text == "" || cmb1.Text== "") { MessageBox.Show(" Rellene todos los campos", "Campos vacios", MessageBoxButtons.OK, MessageBoxIcon.Stop); txt1.Focus(); } else { try { cnn.Open(); cmd.CommandText = "Insert into capturar(TP101,DC102,DC103,DC105,FECHA,EXP,DC109) values('" + txt1.Text + "','" + txt2.Text + "','" + txt3.Text + "','" + txt4.Text + "','" + txt5.Text + "','" + txt6.Text + "','" + cmb1.Text + "')"; cmd.Connection = cnn; cmd.ExecuteNonQuery(); cnn.Close(); MessageBox.Show("Se ha dado de alta correctamente"); } catch (Exception m) { MessageBox.Show(m.Message); } } }
txt5= fecha, el error me sale, cuando presiono la tecla f en txt5, me muestra la fecha automaticamente y este es mi codigo de "f"
{ if(e.KeyChar=='f'){ e.Handled = true; txt5.Text += DateTime.Now.ToString("dd/MM/yyyy"); }
y cuando lo guardo, me marca el siguiente error, debido a que MySQl guarda la fecha como yyyy/mm/dd.
-
-
De todas formas
esto no lo veo bien... txt5.Text += DateTime.Now.ToString("dd/MM/yyyy");
cuando pulsas f añades la fecha al contenido de txt5?? y si tuviera por ejemplo otra fecha?
txt5.Text = DateTime.Now.ToString("dd/MM/yyyy");
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Propuesto como respuesta Sergio ParraModerator lunes, 20 de mayo de 2013 13:45
- Marcado como respuesta Sergio ParraModerator sábado, 17 de julio de 2021 16:51
-
-
public void insertar(TextBox txt1, TextBox txt2, TextBox txt3, TextBox txt4, TextBox txt5, TextBox txt6,ComboBox cmb1) { if (txt1.Text == "" || txt2.Text == "" || txt3.Text == "" || txt4.Text == "" || txt5.Text == "" || txt6.Text == "" || cmb1.Text== "") { MessageBox.Show(" Rellene todos los campos", "Campos vacios", MessageBoxButtons.OK, MessageBoxIcon.Stop); txt1.Focus(); } else { using (cnn) { using(SqlCommand cmd = new SqlCommand("Insert into capturar(TP101,DC102,DC103,DC105,FECHA,EXP,DC109) values(?TP101, ?DC102, ?DC103, ?DC105, ?FECHA, ?EXP, ?DC109);", cnn)) { cnn.Open(); cmd.CommandType = Text;
cmd.Connection = cnn; cmd.Parameters.AddWithValue("?TP101", txt1.Text); cmd.Parameters.AddWithValue("?DC102", txt2.Text); cmd.Parameters.AddWithValue("?DC103", txt3.Text); cmd.Parameters.AddWithValue("?DC105", txt4.Text); cmd.Parameters.AddWithValue("?FECHA", Convert.ToDateTime(txt5.Text)); cmd.Parameters.AddWithValue("?EXP", txt6.Text); cmd.Parameters.AddWithValue("?DC109", cmb1.Text); cmd.ExecuteNonQuery(); cnn.Close(); MessageBox.Show("Se ha dado de alta correctamente"); } } } }
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Editado Sergio ParraModerator lunes, 20 de mayo de 2013 13:56
- Marcado como respuesta StangMx lunes, 20 de mayo de 2013 14:01
-
-
-
-
-
-
El modelo de capas es justamente para evitar confusiones. En la capa de datos deberías tener un solo métodos para cada operación en cada tabla (aunque puede haber mas de una tabla), entonces si hay un error, lo corriges en ese lugar y te asegura que se resolvió. En cambio, si pones métodos para guardar en cada formulario que lo necesites, si necesitás corregir hay que hacerlo a todos, llega el momento en eso se transforma en un caos y siempre terminas olvidándote de corregir algunos.
-
disculpa, si estoy trabajando modelo a capas? el conver.ToDateTime lo uso en mi acceso datos y en m formulario.
Eso depende de como definiste los método en las distintas capas, por ejemplo:
Capa de Datos:
public static bool Guardar(Int32 IdCursante, DateTime fechaInsc) { using (SqlConnection cn = new SqlConnection(*****)) { cn.Open(); String sql = "INSERT INTO Cursantes(IdCursante, FechaIns) VALUES (@IdCursante, @fecha)"; SqlCommand cmd = new SqlCommand(sql, cn); cmd.Parameters.AddWithValue("@IdCursante", IdCursante); cmd.Parameters.AddWithValue("@fecha", fechaInsc); return (int)cmd.ExecuteNonQuery() > 0; } }
En este caso el método "Guardar" recibe el parámetro "fechaInsc" de tipo DateTime, así que la conversión tendrás que hacerla donde vas a llamar al "Guardar", generalmente en la capa de negocios.
Otra cosa: El método conver.ToDateTime generará error si dato a convertir no es una fecha correcta, por ejemplo los datos null provenientes de las bases de datos.