Sei sulla pagina 1di 9

10/6/2014 ADO.

NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 1/9
Raphaelo Go
un espacio para aprender
Archivo para la Categora "ADO.NET"
Escenario conectado vs escenario desconectado
en ADO.net
(http://r4ph43l0.wordpress.com/2011/02/28/escenario-
conectado-vs-escenario-desconectado-en-ado-net/)






i
1 Vote
Bueno despus de una larga ausencia y de poca de exmenes me he dado un tiempo para publicar
algo, resulta que el otro da me preguntaron la diferencia que haba entre el Escenario conectado y
el desconectado en ADO.net, bueno pues a continuacin explico como funciona esto:
El Escenario conectado se ilustra mejor con la siguiente imagen:
10/6/2014 ADO.NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 2/9
(http://r4ph43l0.files.wordpress.com/2011/02/image.png) fig. 1. esquema del
Escenario conectado
en este esquema se puede observar que:
1: se inicia la conexin a la BD
2: se ejecuta un comando
3: se procesan los datos
4 se libera el comando
5: se cierra la conexin
como pueden observar todo el proceso lo realizamos con datos frescos de la base de datos una gran
ventaja de este Escenario.
ahora veamos cuales son los pros y contras de este Escenario
ventajas:
1.- Al haber una conexin permanente por usuario o aplicacin podemos tener mas control de la
seguridad y el acceso al servidor.
2.-Mayor control de concurrencias: en un escenario donde mltiples usuarios se estuvieran
conectando y desconectando permanentemente para realizar distintas acciones, este control sera
ms difcil de llevar.
3 .- siempre accederemos a los datos mas recientes.

Desventajas
1.- Al ser una conexin constante consume muchos recursos.
2.- El acceso a datos se ve limitado por las mltiples conexiones que tiene el servidor.

Por otro lado esta es la imagen para ilustrar el Escenario desconectado:
10/6/2014 ADO.NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 3/9
(http://r4ph43l0.files.wordpress.com/2011/02/image1.png) fig 2. Escenario
desconectado
El Escenario Desconectado funciona de la siguiente manera:
1)Abrir Conexin
2) Llenar DataSet mediante DataAdapter
3) Cerrar Conexin
4) Procesar DataSet
5) Abrir Conexin
6) Actualizar fuente de datos mediante DataAdapter
7) Cerrar Conexin
como pueden observar los datos se procesan de forma local y despus son sincronizados a la base de
datos para actualizarla. entre los pros y contras estn los siguientes:
Ventajas:
1.- se puede trabajar con los datos de manera independiente de los otros usuarios
2.- las conexiones son pocas y consume menos recursos el servidor
Desventajas:
1.- Puede que el usuario no este usando los datos mas actuales de la base de datos.
2.- Al sincronizarse los datos puede haber conflictos los cuales se debern resolver de manera
manual.
Espero y este todo claro y la duda tambin hasta luego y psenla bien.
CATEGORA:
ADO.NET
10/6/2014 ADO.NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 4/9
Como leer en una BD de SQL desde C#
(http://r4ph43l0.wordpress.com/2011/01/18/como-leer-en-
una-bd-de-sql-desde-c/)






i
1 Vote
Hola otra vez, pues continuo con la aplicacin que deje pendiente en el tutorial anterior ( como
insertar en una BD SQL desde c# (http://r4ph43l0.wordpress.com/2010/12/18/como-insertar-en-una-
bd-sql-desde-c/)). Esta vez completaremos nuestra aplicacin con un lector de datos, pues
empecemos:
Como primer paso agreguemos un objeto mas a nivel de clase el cual sera usado para leer nuestra
base de datos
public partial class Form1 : Form
{
SqlConnection conexion = new SqlConnection();
SqlCommand comando = new SqlCommand();
SqlDataReader lector;

ya hecho lo anterior nos vamos al mtodo load de nuestra forma, aqu mandaremos llamar un
nuevo metodo que nosotros crearemos para que nos realice la lectura de datos:
private void Form1_Load(object sender, EventArgs e)
{
conexion.ConnectionString= @Data Source=Raphael\SQLEXPRESS;Initial
Catalog=bdsss;Integrated Security=True;
//Metodo para leer datos
leerDATOS();
}
ya que llamamos a nuestro metodo pues veamos el codigo que debe contener:
private void leerDATOS()
10/6/2014 ADO.NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 5/9
private void leerDATOS()
{
try
{
comando.Connection = conexion;

comando.CommandText = select * from tabla1;//Realizamos nuestra consulta
conexion.Open(); //abrimos conexion
//Leemos nuestra tabla
lector = comando.ExecuteReader();
while (lector.Read())
{
//cbxcontrol y cbxnombres son combobox
cbxncontrol.Items.Add(lector.GetInt32(0));//Este primero lee la primera columna
cbxnombres.Items.Add(lector.GetString(1));//Este lee la segunda columna
}
conexion.Close();
comando.Dispose();
}
catch (SqlException ex)
{
MessageBox.Show(FALLO AL LEER LOS DATOS: + ex);
}
}
nuestra aplicacion quedaria de la siguiente manera:
(http://r4ph43l0.files.wordpress.com/2011/01/image.png) fig 1:
Interfaz de nuestra aplicacion
Bueno pues y haber sido claro, hasta luego.
CATEGORA:
10/6/2014 ADO.NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 6/9
ADO.NET
Como insertar en una BD SQL desde c#
(http://r4ph43l0.wordpress.com/2010/12/18/como-insertar-
en-una-bd-sql-desde-c/)






i
3 Votes

Bueno promet hacer un pequeo tutorial de como hacer una consulta desde un Windows Form C#
ha una pequea base de datos hecha en SQL Server 2005, pues iniciemos:
Para empezar algo de paja que no cae mal para entender mejor lo que vamos a hacer. Como saben
C# es un lenguaje orientado a objetos entonces para conectarnos y consultar nuestra base de datos
necesitamos eso precisamente objetos que nos van a ayudar poder comunicarnos con las clases,y
poder hacer consultas a nuestras bases de datos, estas clases las explico a continuacin:

SqlConnection: Especifica la fuente de la base de datos y establece las
propiedades con las cuales nos vamos a conectar a la BD
SqlCommand Esta clase ejecuta comandos a una fuente de datos
SqlDataReader Esta clase es usada para leer datos de una fuente
me falta explicar el SqlDataAdapter pero por lo pronto asi lo dejamos para no confundirlos mas.
Prara empezar inciamos el Visual Studio y creamos un proyecto de tipo Windows Form, en este
caso con con el lenguaje C#
despus agregamos lo siguiente (omito las etiquetas por cuestiones de tiempo solo voy a poner
textbox ):

Tipo name
textbox tbxncontrol
10/6/2014 ADO.NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 7/9
textbox tbxnombre
button btnincertar
nos quedara masomenos asi:
(http://r4ph43l0.files.wordpress.com/2010/12/image.png) figura 1: diseo de nuestra forma
y nuestra base de datos se va a llamar bdtutorial y nuestra tabla se va a llamar tabla1 y tendra 2
campos como se muestra a continuacin:
(http://r4ph43l0.files.wordpress.com/2010/12/image1.png) figura 2: tabla1 de nuestra Base de Datos
Bueno ahora nos vmonos al codigo, y para empezar como nos estamos conectando a una base de
datos de MS SQL necesitamos agregar la siguiente libreria:
using System.Data.SqlClient;
como siguiente paso agregamos nuestros objetos a nivel de clase de la siguiente manera:
public partial class Form1 : Form
{
SqlConnection conexion = new SqlConnection();
SqlCommand comando = new SqlCommand();

la primera como ya explique nos servira para la conexion, la segunda para nuestras consultas. ahora
que ya tenemos nuestros objetos nos vamos a el metodo Form1_Load de nuestra forma para
establecer la conexin a nuestra base de datos:
private void Form1_Load(object sender, EventArgs e)
{
conexion.ConnectionString= @Data Source=Raphael\SQLEXPRESS;Initial
Catalog=bdtutorial;Integrated Security=True;
}
Aqui a la cadena de conexion tenemos las propiedades, la primera Data Source nos indica el
10/6/2014 ADO.NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 8/9
Aqui a la cadena de conexion tenemos las propiedades, la primera Data Source nos indica el
nombre de nuestro servidor, despues Initial Catalog nos indica el nombre de nuestra base de
datos (el cual es bdtutorial) y por ultimo Integrated Security la cual esta en true lo cual nos indica
que nos estamos integrando la seguridad a travez de la Autenticacion de windows. como se muestra
en la imagen:
(http://r4ph43l0.files.wordpress.com/2010/12/image2.png) figura 3: conexin a nuestro motor de base
de datos.
como se puede observar el nombre de nuestro servidor es Raphael\SQLEXPRESS especificado en
nuestro Data Source y nuestra propiedad Integrated Security =true se debe a que estamos
autenticando por windows.
y por ultimo en nuestro boton agregamos el codigo que nos generara la consulta:

private void btnIncertar_Click(object sender, EventArgs e)
{
try //protejemos la consulta
{
comando.Connection = conexion;
//el simbolo @ nos indica los parametros que le vamos a pasar
//este codigo es tambien util para update y delete
comando.CommandText = insert into tabla1(id,nombre) values(@ncontrol,@nombre);
conexion.Open(); //Abrimos la conexion a nuestra base de datos
comando.Parameters.Clear();
comando.Parameters.AddWithValue(ncontrol, tbxncontrol.Text);
comando.Parameters.AddWithValue(nombre, tbxnombre.Text);
//comando.ExecuteNonQuery regresa el numero de filas afectadas
10/6/2014 ADO.NET | Raphaelo Go
http://r4ph43l0.wordpress.com/category/ado-net/ 9/9
//comando.ExecuteNonQuery regresa el numero de filas afectadas
int NFilas = comando.ExecuteNonQuery();
if (NFilas > 0)
{
MessageBox.Show(datos Almacenados exitosamente);
}
}
//.NET captura las excepciones que ocurran al realizar nuestras consultas en SqlException
catch (SqlException ex)
{
MessageBox.Show(FALLO AL GENERAR LA CONSULTA: +ex);
}
conexion.Close(); //se cierra la conexion para liberar espacio en memoria
comando.Dispose(); //se limpian los comandos para poder hacer otra consulta
}
bueno por ahora eso es todo espero haber sido claro, hasta luego.
CATEGORA:
ADO.NET, SIN CATEGORA
Blog de WordPress.com. | El tema Spectrum.
Seguir
Seguir Raphaelo Go
Ofrecido por WordPress.com

Potrebbero piacerti anche