Un SqlCommand se utiliza cuando necesitas ejecutar un tipo de sentencia Sql a la base de datos (los tipos pueden ser: Delete, Update, Insert o Select). Por su parte el SqlDataAdapter se utiliza si requieres ejecutar más de un tipo de sentencia Sql o si trabajarás en escenarios desconectados.
Ejemplo de SqlCommand:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| public List Listar(){ SqlConnection con = new SqlConnection(cadenaConexion); SqlCommand com = new SqlCommand("LISTAR_CAMPANAS", con); com.CommandType = System.Data.CommandType.StoredProcedure; con.Open(); SqlDataReader drCampanas = com.ExecuteReader(); List listaCampanas = new List(); while (drCampanas.Read()) { listaCampanas.Add(Cargar(drCampanas)); } drCampanas.Close(); con.Close(); return listaCampanas;} |
Ejemplo de SqlDataAdapter (basado en el ejemplo anterior pero levemente modificado):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| public List Listar(){SqlConnection con = new SqlConnection(cadenaConexion);SqlCommand com = new SqlCommand("LISTAR_CAMPANAS", con);com.CommandType = System.Data.CommandType.StoredProcedure;SqlDataAdapter da = new SqlDataAdapter(com);con.Open();SqlDataReader drCampanas = da.SelectCommand.ExecuteReader();List listaCampanas = new List();while (drCampanas.Read()){listaCampanas.Add(Cargar(drCampanas));}drCampanas.Close();con.Close();return listaCampanas;} |
En el ejemplo anterior se muestra como un SqlDataAdapter puede contener a un SqlCommand (llamado “com” en el ejemplo) que representa una sentencia Select; de igual forma, se puede agregar comandos que representen las sentencias Insert, Update y Delete utilizando sus respectivas propiedades:
1
2
3
4
| SqlCommand dummyCommand = new SqlCommand();da.UpdateCommand = dummyCommand;da.DeleteCommand = dummyCommand;da.InsertCommand = dummyCommand; |
Si no necesitas trabajar en escenarios desconectados y si solo necesitas utilizar un comando a la vez, utiliza un SqlCommand, de lo contrario un SqlDataAdapter.
No hay comentarios:
Publicar un comentario