Ejecutar sentencia SQL

27/11/2008 - 02:51 por Darhas | Informe spam
Hola a todos
¿¿¿Me podriais indicar que me falta para ejecutar mi sentencia SQL???

Y otra pregunta, Si quiero hacer un Select tambien funciona de la misma
manera, quiero decir, el mismo codigo cambiando la sentencia SQL, y donde me
devuelve la consulta????


Un saludo y gracias por todo
Darhas
-
OleDbConnection cnn;
OleDbDataAdapter cmd;
string sql;
sql = "INSERT INTO TNumeros(Antes, Numero, Despues, TipoNumero) VALUES
(tAntes.Text, tNumero.Text, tDespues.Text, tTipoNumero.Text);";
cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+
(@"_Ficheros\pepe.mdb") + ";");
cmd = new OleDbDataAdapter(sql, cnn);
cnn.Open();
- ¿¿¿¿Aqui que pongo para ejecutar mi sentencia SQL????
cnn.Close();

Preguntas similare

Leer las respuestas

#6 Alberto Poblacion
29/11/2008 - 09:39 | Informe spam
"Darhas" wrote in message
news:
[...]
Ahora solo me falta "chupar" los datos cuando hago el Select.

Por lo que me comento Alberto, en su primera respuesta, habia que hacer un
Fill, vale, lo hago, ¿¿¿pero como recogo los datos del DATASET que creo???



Bueno, ya están "recogidos" dentro del DataSet, que es una estructura
que los contiene en memoria. La pregunta es ¿dónde los quieres? ¿prefieres
otra estructura en lugar del DataSet? Los puedes pasar a donde quieras
recorriéndolos por filas y columnas:

DataTable dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
int numero = (int)dr[0]; //La 1a columna
string tipoNumero = (string)dr[1]; //La 2a
DateTime despues = (DateTime)dr[2]; //etc
//etc
//Ahora tienes en variables los datos de una fila
}


Sin embargo, si vas a usar los datos de esta manera, procesándolos registro
por registro, y no quieres usar el DataSet como tal (por ejemplo, para hacer
un databinding), entonces es más eficiente usar un DataReader:

using (OledbConnection cnn = new OleDbConnection(cadena))
{
string sql = "Select";
OleDbCommand cmd = new OleDbCommand(sql, cnn);
cnn.Open();
using (OleDbDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
int numero = rdr.GetInt32(0);
string tipoNumero = rdr.GetString(1);
//etc.
}
}
}



Aqui dejo el codigo del Select
//Esto es para un Select
OleDbConnection cnn;
OleDbDataAdapter cmd;
string sql;
sql = "SELECT Numero, TipoNumero, Despues, Antes FROM TNumeros ORDER BY
Numero, TipoNumero";
cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data
Source="+
(@"Pepe.mdb") + ";");
cmd = new OleDbDataAdapter(sql, cnn);
cnn.Open();
DataSet ds = new DataSet();
cmd.Fill(ds);
cnn.Close();

Respuesta Responder a este mensaje
#7 Darhas
30/11/2008 - 01:49 | Informe spam
Hola Alberto

Decirte que he triunfado como la Coca-Cola en verano, muchas gracias de
verdad.

Ahora una última pregunta, mas que una pregunta es una curiosidad:

-¿¿Es normal que al insertar en la BD de ACCESS 5000 registros seguidos
tarde sobre 3 minutos?? ¿¿¿No es mucho tiempo??

Un saludo
Darhas
Respuesta Responder a este mensaje
#8 Alberto Poblacion
30/11/2008 - 10:16 | Informe spam
"Darhas" wrote in message
news:
Ahora una última pregunta, mas que una pregunta es una curiosidad:

-¿¿Es normal que al insertar en la BD de ACCESS 5000 registros seguidos
tarde sobre 3 minutos?? ¿¿¿No es mucho tiempo??



Bueno, te salen 27 inserciones por segundo en promedio, que no está
demasiado mal. Piensa que por cada registro se tiene que construir la
sentencia de inserción, y luego ejecutarla contra el JET Engine, que tiene
que "parsear" la instrucción, extraer los argumentos, insertar los datos
físicamente en disco, y construir todos los índices que existan sobre la
tabla.
Si necesitas optimizarlo, haz unas cuantas pruebas, comprobando primero
si se te va el tiempo en construir las sentencias en memoria o en
ejecutarlas contra Access. Si lo que es lento es la parte de C#, pon aquí el
código y podemos tratar de optimizarlo (por ejemplo, merece la pena usar una
sentencia parametrizada y dentro del bucle que graba registros, cambiar
solamente los valores de los parámetros, sin volver a construir la
sentencia). Si la lentitud está en el lado de Access, se puede recurrir a
algún truco como por ejemplo eliminar todos los índices, insertar los
registros, y luego volver a construir los índices.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida