CLR: .Net / Mono / Boo / Otros CLR > C#
Consultas sql en C#
Laxair:
Cuando apreto el botón ahora se cierra el formulario cosa que antes no pasaba pero sigue sin escribir en la bd.
chenech:
Cuando me pasaba eso quitaba los try catch e iba poniendo MessageBox.Show("1"), MessageBox.Show("2"), etc entre las líneas para ver donde llegaba y donde se para. O bien ejecuta la aplicación en debug línea por línea a ver donde se para o da error.
Laxair:
Ya me funciono, faltaba convertir los tipos nada mas dejo el código por si a alguien le sirve:
--- Código: ---private void button1_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =\"C:\\Users\\******\\Desktop\\Personal.accdb\"";
OleDbCommand cmd;
string consultaSQL = "INSERT INTO InasistenciasJefatura (Legajo, Estado, Fecha, Cargo, Turno, Aviso) VALUES (@Legajo, @Estado, @Fecha, @Cargo, @Turno, @Aviso)";
cmd = new OleDbCommand(consultaSQL, conn);
cmd.Connection = conn;
try
{
conn.Open();
}
catch (Exception excepcion)
{
Console.Write(excepcion.Message);
Console.ReadLine();
}
if (conn.State == ConnectionState.Open)
{
try
{
cmd.Parameters.AddWithValue("@Legajo", Convert.ToInt32(txtLeg.Text.ToString()));
cmd.Parameters.AddWithValue("@Estado", txtEstado.Text.ToString());
cmd.Parameters.AddWithValue("@Fecha", Convert.ToDateTime(txtFecha.Text.ToString()));
cmd.Parameters.AddWithValue("@Cargo", Cargo.Text.ToString());
cmd.Parameters.AddWithValue("@Turno", txtTurno.Text.ToString());
cmd.Parameters.AddWithValue("@Aviso", txtAviso.Text.ToString());
cmd.ExecuteNonQuery();
}
catch (Exception excepcion)
{
Console.Write(excepcion.Message);
Console.ReadLine();
}
conn.Close();
}
}
}
}
--- Fin del código ---
Laxair:
Otra pregunta, como hago si quisiera registrar solo aquellos legajos que empiezan con un determinado numero?
Yo pense algo asi:
--- Código: --- if (lector["Legajo"].ToString() == txtLeg.Text && txtLeg.Text.Substring(0,1)==3)
--- Fin del código ---
Pero me dice Error CS0019 Operator '==' cannot be applied to operands of type 'string' and 'int'
EDIT: Agrego otra pregunta. Como hago para mostrar todos los registros de una base de datos acces en un textbox multilinea?
--- Código: --- private void button1_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =\"C:\\Users\\*******\\Desktop\\Personal.accdb\"";
OleDbCommand comando;
OleDbCommand comando2;
OleDbCommand comando3;
OleDbDataReader lector;
OleDbDataReader lector2;
OleDbDataReader lector3;
string consultaSQL = "SELECT Legajo , Estado , Fecha , Cargo , Turno , Aviso FROM InasistenciasJefatura";
string consultaSQL2 = "SELECT Legajo , Fecha , Estado , Hora , Aviso FROM InasistenciasBedel ";
string consultaSQL3 = "SELECT Legajo , Fecha , Estado FROM InasistenciasSecretario ";
comando = new OleDbCommand(consultaSQL, conn);
comando2 = new OleDbCommand(consultaSQL2, conn);
comando3 = new OleDbCommand(consultaSQL3, conn);
try
{
conn.Open();
}
catch (Exception excepcion)
{
Console.Write(excepcion.Message);
Console.ReadLine();
}
if (conn.State == ConnectionState.Open)
{
try
{
lector = comando.ExecuteReader();
lector2 = comando2.ExecuteReader();
lector3 = comando3.ExecuteReader();
while (lector.Read())
{
txtMostrar.Text = "\n" + lector.GetValue(0).ToString();
txtMostrar.Text += " - " + lector.GetValue(1).ToString();
txtMostrar.Text += " - " + lector.GetValue(2).ToString();
txtMostrar.Text += " - " + lector.GetValue(3).ToString();
txtMostrar.Text += " - " + lector.GetValue(4).ToString();
txtMostrar.Text += " - " + lector.GetValue(5).ToString();
txtMostrar.Text += "\r\n---------------------------------------------------------------------";
}
while (lector2.Read())
{
txtMostrar.Text += "\r\n" + lector2.GetValue(0).ToString();
txtMostrar.Text += " - " + lector2.GetValue(1).ToString();
txtMostrar.Text += " - " + lector2.GetValue(2).ToString();
txtMostrar.Text += " - " + lector2.GetValue(3).ToString();
txtMostrar.Text += " - " + lector2.GetValue(4).ToString();
txtMostrar.Text += " - " + lector2.GetValue(5).ToString();
}
while (lector3.Read())
{
txtMostrar.Text += "\r\n" + lector3.GetValue(0).ToString();
txtMostrar.Text += " - " + lector3.GetValue(1).ToString();
txtMostrar.Text += " - " + lector3.GetValue(2).ToString();
}
}
catch (Exception excepcion)
{
Console.Write(excepcion.Message);
Console.ReadLine();
}
conn.Close();
}
}
--- Fin del código ---
Eso me muestra hasta dos registros de tablas distintas el tercero no lo muestra y si hay dos o mas registros en una misma tabla solo te muestra el ultimo.
chenech:
Al tratar el dato como string debes poner el número tres entre comillas.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa