Vous êtes sur la page 1sur 4

Operaciones básicas en una base de datos SQL Server

utilizando lenguaje C# 2005

Los elementos comunmente utilizados para realizar estas operaciones son:

SqlConnection:
Conexión a utilizar para comunicarse con la base de datos. Como
parámetro contiene el string de conexión.

SqlCommand:
Objeto a utilizar para realizar una operación de inserción,
eliminación o actualización de uno o más registros en la base de datos.

SqlParameter:
Objeto utilizado para introducir parámetros variables dentro de
un query a realizar sobre la base de datos.

SqlDataAdapter:
Objeto a utilizar para realizar una operación de consulta o
ejecución de un procedimiento almacenado en la base de datos.

DataSet:
Objeto en el que se almacenan los registros devueltos por una
consulta hecha a la base de datos.

INSERCION

Para poder insertar información en una tabla de una base de datos en


SQL server se utilizan los siguientes componentes:

SqlConnection
SqlCommand
SqlParameter

En el siguiente ejemplo se demuestra como se realiza una inserción en


la base de datos:

//Se inicializa el objeto de conexión con el string de conexión.


//El campo "Data Source" contiene el nombre de la máquina donde se
//encuentra la base de datos. Si se tienen varios manejadores de bases
//de datos instalados es conveniente especificar el manejador sobre el
//que se va a trabajar, de lo contrario se utiliza el valor "local". En
//este caso utilicé "ALVOS" ya que tengo instalado en mi máquina SQL
//Server 2000 y SQL Server 2005 y el nombre del servidor que utilicé es
//el de mi base de datos SQL Server 2000
//Database es la base de datos a utilizar
//User Id es el nombre del usuario creado en el manejador de la base de
//datos para manipular la misma. Recuérdense de otorgarle los permisos
//necesarios para no tener problemas con los queries
//Password es la contraseña asignada al usuario al momento de crearlo
SqlConnection conexion = new SqlConnection("Data Source=ALVOS;
Database=gestionEstudiante; User Id=alvos;Password=1234");

//se crea el objeto que contendrá el query de inserción


SqlCommand cm = new SqlCommand();
// se especifíca que el tipo de query a realizar será un texto
cm.CommandType = CommandType.Text;

// se especifica el texto del query


// todas las palabras que tienen antepuesto una "@" son nuestros
//parámetros que contienen los valores que nosotros les asignamos.
//Estos parámetros son variables
cm.CommandText = "INSERT INTO estudiante values(@carne,@nombre,
@apellido,@direccion)";

//se crea un SqlParameter por cada parámetro especificado en nuestro


//query.
//SqlDbType es el tipo de dato que nosotros le pusimos en nuestra tabla
//al campo que representa nuestro parámetro. En este caso todos mis
//campos de la tabla son de tipo VARCHAR
SqlParameter par_carne = cm.Parameters.Add("@carne",
SqlDbType.VarChar);
SqlParameter par_nombre = cm.Parameters.Add("@nombre",
SqlDbType.VarChar);
SqlParameter par_apellido = cm.Parameters.Add("@apellido",
SqlDbType.VarChar);
SqlParameter par_direccion = cm.Parameters.Add("@direccion",
SqlDbType.VarChar);

// se asignan los valores a los parámetros


par_carne.Value = "200212212";
par_nombre.Value = "Víctor";
par_apellido.Value = "Alvarez";
par_direccion.Value = "zona 7";

// se especifíca la conexión a utilizar para ejecutar el query. En este


// caso utilizamos nuestro objeto creado anteriormente
cm.Connection = conexion;

// abrimos la conexión para ejecutar el query


conexion.Open();

// ejecutamos el query
cm.ExecuteNonQuery();

// cerramos la conexión para ejecutar el query. Esto debe hacerse


// siempre ya que si la conexión se queda abierta, nadie podrá entrar a
// realizar otra operación a la tabla que bloqueamos con nuestro query.
conexion.Close();

De la misma manera se realiza una actualización o eliminación. Lo único


que cambia es la instrucción SQL a utilizar (UPDATE para actualizar y
DELETE para eliminar).
SELECCION

Para realizar una selección en una tabla de la base de datos se


utilizan los siguientes objetos:

SqlConnection
SqlDataAdapter
DataSet

// se inicializa la conexión de la misma manera que el ejemplo de


inserción.
SqlConnection conexion = new SqlConnection("Data Source=ALVOS;
Database=gestionEstudiante; User Id=alvos;Password=1234");

// se crea una instancia de nuestro DataSet


DataSet tabla = new DataSet();

// se crea una instancia de nestro objeto conector especificando el


// string que contiene el query de selecciòn y la conexión. En este
// caso nuestra conexión es el objeto de conexión creado anteriormente
SqlDataAdapter conecto = new SqlDataAdapter("SELECT * FROM estudiante",
conexion);

// se llena el dataset con la información. El dataset debe ser agregado


//como parámetro en la instrucción Fill de nuestro conector. En este
//caso nuestro dataset es "tabla"
conecto.Fill(tabla);

Para utilizar los valores almacenados en nuestro DataSet se utilizan


los siguientes atributos:

Tables: Es atributo directo del DataSet y contiene una colección de


tablas devueltas por nuestra consulta.

Rows: Es un atributo de un objeto de la colección tables y contiene una


colección de filas devueltas por la consulta.

El ejemplo siguiente muestra una ventana de alerta (MessageBox) con el


carné del primer registro de mi tabla estudiante

MessageBox.Show(tabla.Tables[0].Rows[0]["carne"].ToString());

Tables[0] especifica que quiero la primera tabla de la colección, en


este caso sería mi tabla estudiante especificada en mi query "SELECT *
FROM estudiante"

Rows[0] especifica que estaré utilizando mi primera fila o registro de


la tabla que obtuve del query

Rows[0]["carne"] especifica que de la primera fila utilizaré el valor


del campo "carne"

Rows[0]["carne"].toString() convierte a un string el valor que se


encuentra en el campo carné de mi primera fila devuelta por el query
Por lo tanto la instrucción completa es

tabla.Tables[0].Rows[0]["carne"].toString();

Los valores de nuestros campos pueden ser convertidos al tipo de dato


que querramos utilizando la instrucción Convert.

En el siguiente ejemplo convierto el campo carne a una variable de tipo


entero y lo asigno a mi variable entera carné:

int carne = Convert.ToInt32(tabla.Tables[0].Rows[0]["carne"])

OJO, esta operación es solo para demostrar como se convierten los


datos, si la implementan puede fallar ya que un entero no aguanta el
tamaño de un carné.

La tabla que utilicé para el ejemplo es la siguiente:

Tabla estudiante
Campo Tipo
carne varchar
nombre varchar
apellido varchar
direccion varchar

Espero que este manual les sirva para tener noción acerca de cómo se
realizan las conexiones y operaciones en una BD desde c# y que les
sirva de punto de partida para que investiguen y perfeccionen sus
formas de realizar estas operaciones.