Documente Academic
Documente Profesional
Documente Cultură
Tabla de contenido
1. VARIABLES ..................................................................................................................... 4
1.1. Tipos de datos básicos............................................................................................... 4
1.2. Orden de inicialización de variables .......................................................................... 5
2. OPERADORES Y EXPRESIONES ....................................................................................... 6
2.1. Operadores aritméticos: ........................................................................................... 6
2.2. Operadores relacionales ........................................................................................... 6
2.3. Orden de operación .................................................................................................. 6
3. ESTRUCTURA DE SELECCIÓN ......................................................................................... 9
3.1. Estructura if ............................................................................................................... 9
3.2. Estructura if- else ...................................................................................................... 9
3.3. Estructura switch ..................................................................................................... 10
4. ESTRUCTURAS REPETITIVAS ........................................................................................ 13
4.1. El bucle for............................................................................................................... 15
4.2. El bucle while........................................................................................................... 15
4.3. El bucle do while ..................................................................................................... 16
5. Depuración ...................................................................................................................... 17
6. Métodos .......................................................................................................................... 18
6.1. La estructura de un método ........................................................................................ 18
6.2. Tipos de parámetro ..................................................................................................... 20
7. Argumentos ..................................................................................................................... 23
Main () y argumentos de la línea de comandos ...................................................................... 24
8. Excepciones ..................................................................................................................... 27
8.1. Lanzamiento de Excepciones ...................................................................................... 28
8.2. Captura de excepciones con System.Exception .......................................................... 30
9. Arreglos ........................................................................................................................... 36
9.1. Definición .................................................................................................................... 36
9.2. Declaración de un Arreglo de tipo Vector ................................................................... 40
9.3. Instanciación ............................................................................................................... 40
9.4. Matrices....................................................................................................................... 42
9.5. Declaración de una Matriz en C# ............................................................................... 42
10. Creación de clases ....................................................................................................... 57
10.1. Cómo declarar una clase ......................................................................................... 58
11. ADO.NET ...................................................................................................................... 67
11.1. Proteger aplicaciones de ADO.NET ......................................................................... 68
3
Introducción
a los desarrolladores crear una gran variedad de aplicaciones seguras y sólidas que se
ejecutan en .NET Framework .NET. Puede usar C# para crear aplicaciones cliente de
1. VARIABLES
Una variable puede verse simplemente como un hueco en el que se puede almacenar
solo lo hay que definirla indicando cuál será su nombre y cuál será el tipo de datos que
<tipoVariable> <nombreVariable>;
Para deducir el orden en que se inicializarán las variables de un tipo de dato basta saber
cuál es el momento en que se inicializa cada una y cuando se llama a los constructores:
• Los campos estáticos sólo se inicializan la primera vez que se accede al tipo al que
pertenecen, pero no en sucesivos accesos. Estos accesos pueden ser tanto para crear
objetos de dicho tipo como para acceder a sus miembros estáticos. La inicialización se
hace de modo que en primer lugar se dé a cada variable el valor por defecto
constructor normal sólo que en su código únicamente puede accederse a miembros static
• Los campos no estáticos se inicializan cada vez que se crea un objeto del tipo de dato al
que pertenecen. La inicialización se hace del mismo modo que en el caso de los campos
estáticos, y una vez terminada se pasa a ejecutar el código del constructor especificado al
crear el objeto. En caso de que la creación del objeto sea el primer acceso que se haga al
tipo de dato del mismo, entonces primero se inicializarán los campos estáticos y luego los
no estáticos.
• Los parámetros se inicializan en cada llamada al método al que pertenecen con los
• Las variables locales se inicializan en cada llamada al método al cual pertenecen, pero
tras haberse inicializado los parámetros definidos para el mismo. Si no se les da valor
inicial no toman ninguno por defecto, considerándose erróneo todo acceso de lectura que
2. OPERADORES Y EXPRESIONES
+ suma a+b
- resta a-b
* multiplicación: a*b
/ división: a/b
% resto: a%b
== igualdad: a==b
¡= desigualdad: a!=b
¡ negación: ¡a
| or binario: a|b
^ or exclusivo: a^b
~ negación binaria: ~à
|| or lógico: a||b
grupo. Este orden de prioridad especifica que operadores se evalúan antes que
prioridad a menor:
Expresiones primarias
Operadores unarios + - ¡ ~ ++ - -
Operadores multiplicativos * / %
Operadores aditivos + -
Operadores de igualdad -- ¡=
AND lógico
OR lógico
AND condicional
OR condicional
Ejm 1:
En este ejemplo podemos observar que al colocar o escribir dos números en la caja de
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string cadena="";
private void button1_Click(object sender, EventArgs e)
{
int N1 = Convert.ToInt32(textBox1.Text);
int N2 = Convert.ToInt32(textBox2.Text);
if (N1==N2)
{
cadena = "son iguales \n";
}
if (N1!=N2)
{
cadena += "son difernetes \n";
}
if (N1>N2)
{
cadena = "N1 es mayor a N2 \n";
}
if (N1<N2)
{
cadena += "N1 es menor a N2 \n";
}
label3.Text = cadena;
}
}
}
9
3. ESTRUCTURA DE SELECCIÓN
3.1. Estructura if
if (expresión booleana)
sintaxis en la siguiente:
if (expresión booleana)
Else
{
10
demasiado compleja de manejar. Una solución mucho más limpia en estos casos consiste
cadena con múltiples valores. Cuando se produce una coincidencia se ejecutan todas las
instrucciones asociadas con ella. Esta estructura es muy utilizada a la hora de trabajar con
switch (opcion)
case valor1;
sentencia11;
sentencia12;
...
break
case valor2;
sentencia21;
sentencia22;
...
break
Default:
sentencia1;
11
sentencia2;
...
break;
Ejm 1:
En este ejemplo nos indica que al ingresar un número del uno al cinco nos muestra en el
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
break;
default:
label2.Text = " ERROR";
break;
}
}
}
}
Ejm 2:
El siguiente ejemplo se trata sobre login básico para poder ingresar su acceso al programa.
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
4. ESTRUCTURAS REPETITIVAS
Los bucles o ciclos repiten una sentencia o una secuencia de sentencias un número
de veces. A dichas sentencias se les conoce como cuerpo del bucle. A cada repetición
Ejm 1:
En este ejemplo nos indica los número divisibles para 2 en sí que tengan un residuo de 0.
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
///CLASE
namespace WindowsFormsApp1
{
class numero
{
int num1;
public void p_num_set(int valor)
{
num1 = valor;
14
}
public void ejemplo ()
{
int i;
for ( i = 0; i <= 10 ; i=i+1)
{
if (i%2==0)
{
MessageBox.Show("los numeros son==>>" + i);
}
}
}
}
}
Ejm 2:
En este ejemplo nos indica el nombre de la columna y el número de filas que se han
ingresado en el datagridview.
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
}
En inicialización se escribe una variable de control de bucle (la cual actúa como
lógica que hace que el bucle realice las iteraciones de las sentencias mientras sea
Sentencia 1...;
Sentencia 2…;
….
Sentencia n;
Sentencias;
}
16
cumpla la condición especificada (al menos una vez). La condición del do while
Contadores: un contador es una variable casi siempre de tipo entero cuyo valor
variable “cont” (contador) o “i” (índice); El contador suele utilizarse de este modo:
ejemplo: cont = 1
2. Se modifica dentro del cuerpo del bucle. Lo más habitual es que se incremente su
Esto quiere decir que el valor de la variable cont se incrementa en una unidad
esta instrucción, cont valdrá 2 después. Otra forma típica del contador es: cont =
cont – 1.
problema. Más tarde, en el cuerpo del bucle, la forma en la que solemos encontrarla es:
5. Depuración
Definición
los errores. El depurador de Visual Studio proporciona un menú Depurar que ofrece
aplicación,
Etc.
6. Métodos
Definición
Son bloques de instrucciones que devuelven algún tipo de valor cuando se ejecutan.
Pueden ser llamados mediante el nombre y llamar a un método hace que las instrucciones
del método se ejecuten. El uso de métodos mantiene el código legible porque las
Los métodos también permiten tomar instrucciones que pueden ser ejecutadas varias
veces y colocarlas en un bloque de código que pueden ser llamados todas las veces que
haga falta.
Tipo devuelto
Lista de parámetros
Todos los métodos se encierran en una clase. Un método no puede existir fuera de una
clase.
Tipo devuelto
Si se quiere devolver un valor de un método se usa la palabra clave return para especificar
el valor que quiere devolverse, la palabra clave va seguida de una expresión que evalúa
el tipo de valor que debe devolverse . Esta expresión puede ser un valor literal, una
y los nombres del método deben seguir las reglas de nomenclatura de cualquier
identificador.
Lista de parámetros
Se pueden llamar a métodos con los parámetros que se usan para pasar los datos al
método. La lista de parámetros del método aparece entre paréntesis y sigue al nombre del
método. Cada parámetro de la lista de parámetros está separado por una coma e incluye
el tipo de parámetro seguido por su nombre. También se pueden prefijar los parámetros
de la lista de parámetros con modificadores que especifican como se usan sus valores
El cuerpo del método es el bloque de instrucciones que compone el código del método.
El cuerpo del método esta entre llaves. La llave de apertura se incluye tras la lista de
parámetros del método y la llave de cierre se coloca detrás de la última instrucción del
código de este método. Después del nombre del método se escriben dos paréntesis. Como
un punto y coma.
Parámetros de entrada
Parámetros de salida
Parámetros de referencia
Matrices de parámetros
Parámetros de entrada
Todos los parámetros que se han usado hasta ahora han sido parámetros de entrada. Los
valores de estos parámetros de entrada se envían a la función, pero el cuerpo del método
Parámetros de salida
llama al método. En su lugar el método establece los valores y los devuelve al elemento
Parámetros de referencia
método puede leer el valor original de la variable y también modificar el valor original
Matrices de parámetros
método con una lista de parámetros siempre espera ser llamada con tres parámetros, ni
más ni menos. Sin embargo a veces puede ocurrir que un método no conozca cuantos
Ejm 1:
En este ejemplo nos indica tres clases de perros diferentes, su altura y su comedia
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
namespace WindowsFormsApp1
{
class perro
{
public string nombre;
public string raza;
public string altura;
public string comer(string croquetas)
{
return this.nombre + "mide" + this.altura + "y va a comer" +
croquetas;
}
public void dormir()
{
}
public void ladrar()
{
}
}
Conclusión
C# permite escribir métodos en sus clases de c#. Los métodos pueden ayudar a dividir el
código en partes fáciles de entender y pueden brindar un lugar único en el que almacenar
7. Argumentos
Definición
en su definición. En tanto, los argumentos son más bien los valores actuales asignados a
Una mejora de las funciones en C++ es que se pueden especificar los valores por
defecto para los argumentos cuando se proporciona un prototipo de una función. Cuando
se llama a una función se pueden omitir argumentos e inicializarlos a un valor por defecto.
a proporcionar. Los argumentos por defecto también pueden ser parámetros opcionales.
Si se pasa un valor a uno de ellos, se utiliza ese valor. Si no se pasa un valor a un parámetro
Todos los argumentos por defecto deben estar situados al final del prototipo o cabecera
de la función. Después del primer argumento por defecto, todos los argumentos
Los autores de actividad usan argumentos para definir la manera en que los datos fluyen
hacia dentro de la actividad y fuera de ella. Cada argumento tiene una dirección
1. Cuando una actividad empieza a ejecutarse, se calculan los valores de todos sus
de la invocación de Execute.
que no tienen orden de evaluación especificada se evalúan antes que los que tienen
Solo puede haber un punto de entrada en un programa de C#. Si hay más de una clase que
compilador /main para especificar qué método Main desea utilizar como punto de
entrada. Para obtener más información, consulte /main (Opciones del compilador de C#).
C#Copiar
class TestClass
System.Console.WriteLine(args.Length);
de Main puede incluir el modificador async, pero tenga en cuenta que se excluirá
El método Main se puede declarar con o sin un parámetro string [ ] que contiene los
Introducción
Con esta entrada doy inicio a la serie de artículos de Excepciones en C#. Sin lugar a dudas,
(parte 2), también comprenderemos cómo usar excepciones con más precaución (efecto
3), usted aprenderá a crear sus propias excepciones para casos muy específicos requeridos
8. Excepciones
Definición
tipos para el manejo de situaciones de error tanto a nivel de sistema como a nivel de
aplicación.
System.Exception
En C++, cualquier valor de cualquier tipo puede ser utilizado para representar una
excepción.
En C#, un bloque finally puede ser utilizado para escribir código que se ejecute
no es duplicando código.
En C#, las excepciones de sistema tales como desbordamiento, división por cero
La clase System.Exception
excepción interna).
System.Exception.
excepción.
System.DivideByZeroException.
Cuando se lanza una excepción desde el código que está entre las llaves de la cláusula
try, el sistema busca la primera cláusula catch que pueda manejar el tipo de excepción
que se ha lanzado (el tipo de excepción ha de coincidir con el del parámetro que espera
la cláusula catch o bien ser de un tipo derivado al que espera la cláusula catch). Si no se
código desde el que se ha llamado al método que contiene la cláusula try donde se ha
lanzado la excepción. Esta operación se repite hasta encontrar una cláusula Catch que
Es importante tener en cuenta que si se desea que una cláusula Catch capture cualquier
excepción ha de definirse sin parámetros. Una vez se ha encontrado la cláusula catch que
29
de ejecutar la primera sentencia de la cláusula catch, se ejecutan todas las cláusulas finally
Si no se encuentra una cláusula catch puede ocurrir una de las dos opciones siguientes:
([try]), y va seguido por una o más clausulas catch. Cada una de las clausulas corresponde
con un tipo de excepción. Debido a que las excepciones integradas en la biblioteca base
de empezar por el tipo de excepción más específico (o con el orden jerarquía menor).
objeto = null;
try
inti = (int) 0;
// Error
aplicación.
Un bloque try, puede estar seguido por una o más clausulas y deben seguir el orden
generará un error al declarar una clausula catch con un tipo general y más adelante uno
específico.
produzca dentro de la sentencia try. Indican que esto es útil en las siguientes situaciones:
se haya generado.
bloque finally
31
completado satisfactoriamente el bloque try (es decir, sin generar ninguna excepción),
como no (es decir cuando alguno de los bloques catch ha atrapado (capturado) una
excepción.
Sentencia using
no administradores por la CLR, como: archivos, gráficos, o bases de datos. Estas clases
Memoria) ocupados en su manejo. Para este tipo de clases, la sentencia using provee una
try
// ...
finally
if (sr != null)
((IDisposable)sr).Dispose();
32
// ...
Ejemplo 1:
En este ejemplo podemos observar que nos permite guardar datos sobre un producto.
namespace WindowsFormsApp1
public Form1()
InitializeComponent();
int numaux;
if (int.TryParse(textBox2.Text,out numaux))
if (int.TryParse(textBox3.Text,out numaux))
try
double x = Convert.ToDouble(textBox1.Text);
INVALIDO");
textBox1.Text = "";
textBox1.Focus();
catch (FormatException x)
escribir.WriteLine(textBox1.Text);
escribir.WriteLine(textBox2.Text);
escribir.WriteLine(textBox3.Text);
escribir.Close();
MessageBox.Show("ARCHIVO GUARDADO");
else
textBox3.Text = "";
textBox3.Focus();
else
textBox2.Text = "";
textBox2.Focus();
}
35
Ejemplo 2:
En este ejemplo podemos observar como el de tema de excepciones nos ayuda a pasar el
error de un programa en la cual mientras se ponga dos números estará todo bien pero
namespace WindowsFormsApp2
public Form1()
InitializeComponent();
try
textBox3.Text = (Convert.ToDecimal(textBox1.Text) +
Convert.ToDecimal(textBox2.Text)).ToString();
catch (Exception)
MessageBox.Show("SOLO NUMEROS!!!!");
9. Arreglos
9.1. Definición
37
Declaración
Los arreglos son tipos referencia y se crean en el heap. Los elementos del arreglo
respectivamente.
Recordemos que los tipos se dividen en dos categorías: por valor y por referencia. Los
elementos de un arreglo pueden ser tipos por valor o referencia. Para referirnos a un
se le conoce como índice del elemento. Una aplicación hace referencia a cualquier
elemento del arreglo mediante una expresión de acceso al arreglo, la cual incluye el
nombre del arreglo, seguido el índice del elemento específico entre corchetes ([ ]). El
primer elemento en cualquier arreglo tiene el índice cero, el cual se conoce como
elemento cero.
Las instancias de los arreglos ocupan espacio en memoria. Al igual que los objetos,
los arreglos se crean con la palabra clave new. Para crear una instancia de un arreglo, se
especifica el tipo y el número de elementos del arreglo, número de elementos como parte
de una expresión de creación de arreglos, que utiliza la palabra clave new. Dicha
38
expresión devuelve una referencia que puede almacenarse en una variable tipo arreglo.
Cabe mencionar, que la expresión anterior puede dividirse en dos partes, así:
Int [ ] C;
Ejemplo 1. Se desea guardar los sueldos de 5 empleados de una fábrica X. Según lo que
requiere definir un único nombre y accedemos a cada elemento por medio del subíndice.
1 namespace Ejemplo1
2{
3 class Program
4{
6 { 7 Double[] Sueldos;
10 {
12 Sueldos[i] = Double.Parse(Console.ReadLine());
13 }
14 Mostrar(Sueldos);
15 Console.ReadKey();
16}
18 {
20 for (int i= 0;
Los vectores son arreglos que contienen una sola dimensión y las matrices 2 o más
dimensiones.
Los arreglos son estructuras de datos complejas (en el sentido de que no son atómicas)
que agrupan datos de un mismo tipo en particular, llamado el tipo base del arreglo. El tipo
base de un arreglo puede ser cualquiera de los tipos básicos de C#, o incluso algunos tipos
puede considerarse como ejemplo de una variable compuesta capaz de almacenar uno o
//Declaración errónea
int valores[ ] ;
//Declaración valida
int [ ] valores;
9.3. Instanciación
Para crear un arreglo haremos uso de la palabra reservada new y los corchetes
Si creamos arreglos de esa manera, cada posición tendrá el valor por default del tipo de
object.
Como podemos ver, tenemos varias opciones para inicializar arreglos unidimensionales:
1. new char [5] {..., nos permite indicar el tamaño y el tipo explícitamente y
2. new int [] {1, 2,..., nos permite indicar solamente el tipo de dato de los elementos,
la tarea de inferir tanto el tipo de dato del arreglo como la cantidad de elementos
42
que contiene. Dicho sea de paso, el declarar un arreglo así puede resultar un
9.4. Matrices
Una matriz es una estructura de datos que permite almacenar un conjunto de datos del
mismo tipo.
Con un único nombre se define la matriz y por medio de DOS sub índices hacemos
Hemos graficado una matriz de 3 filas y 5 columnas. Para hacer referencia a cada
En este ejemplo almacenamos valores enteros. Todos los elementos de la matriz deben
Las filas y columnas comienzan a numerarse a partir de cero, similar a los vectores.
Matrices multidimensionales:
43
Matrices multidimensionales:
Matrices unidimensionales:
int[ ] números;
string[,] nombre;
byte[ ][ ] puntuaciones;
Ejemplo 1:
Ejemplo 2. Programa que carga una matriz de una dimensión establecida y muestra los
valores en pantalla.
1 namespace Matrices_Ejemplo1
2{
3 class Program
4{
6{
15 Console.Write ("Ingrese el valor de la posición [" + filas + "," + columnas + "]: ");
17}
18}
19 Console.Write("\n");
21 Imprimir (Matriz);
22 Console.ReadKey ();
23}
25 {
45
27 {
28 Console.Write ("\n");
30 {
Ejemplos:
En este ejemplo podemos ver que nos permite ingresar los platos de comida que se
namespace WindowsFormsApp1
public Form1()
{
46
InitializeComponent();
button3.Enabled = false;
//Entrada de Datos
cantPlatos = Convert.ToInt32(textBox2.Text);
//Inicializamos la matriz
//Declaración de variables
string plato;
//Entrada de Datos
plato = textBox3.Text;
if (mPlatos[i, 0].Equals(plato))
index = i;
button3.Enabled = true;
encuentra = 1;
if (encuentra == 0)
MessageBoxButtons.OK, MessageBoxIcon.Error);
button3.Enabled = false;
//Declaración de variables
//Entrada de Datos
cant = Convert.ToInt32(textBox2.Text);
stock = Convert.ToInt32(textBox5.Text);
else
49
MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
Ejemplo:
namespace GaussJordan
public Form1()
InitializeComponent();
}
50
if (verificarInfo())
if (obtenerMatriz())
buscarPivoteIntercambiar(matriz);
algoritmoGauss(matriz);
dibujarResultado(matriz);
if (txt is TextBox)
51
if (txt.Text == "")
return false;
return true;
try
if (txt is TextBox)
}
52
Environment.NewLine;
Environment.NewLine + Environment.NewLine;
}
53
rchTeOperaciones.Text += Environment.NewLine;
return true;
catch (Exception)
return false;
int pivote = 0;
Environment.NewLine;
if (matriz[pivote, pivote] != 1)
pivote)))
i + Environment.NewLine;
matriz[r, j] = temp;
Environment.NewLine;
Environment.NewLine + Environment.NewLine;
{
55
rchTeOperaciones.Text += Environment.NewLine;
buscarPivoteIntercambiar(matriz);
pivote++;
rchTeOperaciones.Text += Environment.NewLine;
Environment.NewLine;
int pivote = 0;
if (matriz[i, i] == 0)
else
if (matriz[i, i] != 1)
{
57
if (ren != pivote)
pivote++;
Una clase es una construcción que permite crear tipos personalizados propios mediante
la agrupación de variables de otros tipos, métodos y eventos. Una clase es como un plano.
asignan a una variable. La variable permanece en memoria hasta que todas las referencias
a ella están fuera del ámbito. En ese momento, CLR la marca como apta para la
una copia en memoria y el código de cliente solo puede tener acceso a ella a través de la
Nombre
Atributos
Métodos y propiedades
class nombre_de_la_clase
… contenido de la clase …
Dentro de la clase
“private”.
Modificadores de acceso
Sólo se crea una copia del miembro de la clase. Se crea cuando se carga la aplicación
Miembro de instancia
Se crea por default. Se crea una copia para cada instancia de la clase.
Un miembro estático es un método o campo al que se puede obtener acceso sin hacer
estático.
60
nombre de instancia.
Cuando declara un campo de clase estático, todas las instancias de esa clase
Console.WriteLine(“Tec Laredo”);
Ejemplo 1:
En este ejemplo nos ayuda calcular lo que un empleado se gana al dia por el numero de
días trabajados.
61
namespace WindowsFormsApp1
public Form1()
InitializeComponent();
if (textBox1.Text == "")
textBox1.Focus();
return;
errorProvider1.SetError(textBox1, "");
miempleado.pnombre = textBox1.Text;
miempleado.pidentificacion = textBox2.Text;
62
miempleado.pasignacion = Convert.ToDecimal(textBox3.Text);
minomina.pdialaborados = Convert.ToInt32(textBox4.Text);
textBox5.Text =
minomina.calcularnomina(Convert.ToInt32(minomina.pdialaborados),
Convert.ToInt32(miempleado.pasignacion)).ToString();
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
this.Close();
}
63
/////CLASES
namespace WindowsFormsApp1
class NOMINA
return totalSalario;
///
namespace WindowsFormsApp1
class EMPLEADO
Ejemplo 2:
namespace WindowsFormsApp2
public Form1()
InitializeComponent();
if (radioButton1.Checked)
computadoras.mostrarmensajes("computadoras");
else if (radioButton2.Checked)
computadoras.mostrarmensajes("celulares");
///CLASE
namespace WindowsFormsApp2
class ARTICULOS
}
66
}
67
11.ADO.NET
Es un conjunto de clases que exponen servicios de acceso a datos para programadores
de clientes de base de datos front-end y objetos empresariales de nivel medio que utilizan
XML, así como a orígenes de datos expuestos mediante OLE DB y ODBC. Las
conectar a estos orígenes de datos y recuperar, controlar y actualizar los datos contenidos.
datos .NET Framework para conectarse a una base de datos, ejecutar comandos y
objeto Data Set de ADO.NET con el fin de exponerlos al usuario para un propósito
proveedor de datos .NET Framework para administrar datos que son locales de la
de XML incluidas en System.Xml.dll. Para código de ejemplo que se conecta a una base
68
de datos, recupera datos de ésta y, a continuación, se muestra que los datos en una ventana
de consola.
administrado similar a la funcionalidad que los objetos ADO (ActiveX Data Objects)
.NET.
Framework. Para una abstracción de alto nivel que permite a las aplicaciones para que
Para escribir una aplicación de ADO.NET segura es necesario algo más que evitar los
errores de codificación más comunes, como no validar los datos proporcionados por el
usuario. Una aplicación que tiene acceso a datos tiene muchos puntos débiles potenciales
servicios y herramientas que resultan muy útiles para proteger y administrar aplicaciones
seguridad de tipos en el que ejecutar el código, junto con la seguridad de acceso del código
(CAS) para restringir aún más los permisos del código administrado. Si se siguen las
69
recomendaciones de codificación del acceso seguro a datos, se reduce el daño que podría
usuario cuando trabaja con recursos no administrados como bases de datos. La mayoría
de las bases de datos, como SQL Server, tienen sus propios sistemas de seguridad, que
configurado correctamente.
ADO.NET es una tecnología de acceso a datos que se basa en los objetos ADO
Es una manera nueva de acceder a los datos construida sobre ADO. ADO.NET
de aplicaciones.
Internet.
70
Esto quiere decir que la aplicación se conecta al origen de datos, hace lo que tiene
que hacer, por ejemplo seleccionar registros, los carga en memoria y se desconecta
orígenes de datos como por ejemplo, una base de datos en SQL Server o una
planilla Excel.
ADO.NET utiliza XML como el formato para transmitir datos desde y hacia su
System.Data.
System.Data.SqlClient.
System.Data.OleDb.
Entre los espacios de nombres de .NET Framework relativos a datos y XML se incluyen:
método primario para tener acceso a los datos de las aplicaciones administradas. La
.NET Framework. Dichos proveedores describen una colección de clases que se utiliza
71
para obtener acceso a un origen de datos, como una base de datos, en el espacio
administrado.
código XML.
para orígenes de datos compatibles con OLE DB. Estas clases permiten conectarse a un
origen de datos OLE DB, ejecutar comandos en el origen y leer los resultados.
Framework para SQL Server, que permite conectarse a un origen de datos SQL Server
Estas clases ofrecen una alternativa más segura y más rápida a otros tipos de datos.
para OLE DB. Estas clases permiten el acceso a orígenes de datos ODBC en el espacio
administrado.
Framework para Oracle. Estas clases permiten el acceso a orígenes de datos Oracle en el
espacio administrado.
La mayoría de las aplicaciones se escriben para que procesen información que está
almacenada o lo estará en un soporte concreto: una hoja de cálculo, una base de datos o
72
un RDBMS. Es fundamental contar con servicios que hagan posible conectar con esos
ADO.NET, ha llegado a su versión 2.0 con Visual Studio 2005. Esta nueva iteración
aporta una serie de interfaces y objetos, así como nuevos controles y mejoras en las clases
ADO.NET es un conjunto de componentes de software que pueden ser usado por los
clases base que están incluidas en el Microsoft .NET Framework. Incorpora varios
proveedores de datos, entre ellos dos que permiten conectar con SQL Server y Oracle, así
como otros que facilitan el uso de controladores ODBC y OLE DB para acceder a aquellos
provenientes de Excel, Access, MySQL, etc. ADO.NET es a veces considerado como una
modelo de dos niveles basado en una conexión. A medida que el procesamiento de datos
utiliza cada vez más arquitecturas de varios niveles, los programadores están pasando a
un enfoque sin conexión con el fin de proporcionar una escalabilidad mejor para sus
aplicaciones.
Proveedor de Datos
Estas clases proporcionan el acceso a una fuente de datos como Microsoft SQL Server,
Oracle, etc. Cada fuente de datos tiene su propio conjunto de objetos de proveedor.
Data Set
Los objetos DataSets, un grupo de clases que describen una base de datos relacional
en memoria. Está conformado por una colección de uno o más objetos Data Table
formado por filas y columnas de datos. Así como información sobre claves principales,
Un Data Set es llenado desde una base de datos por un Data Adapter cuyas propiedades
Connection y Command han sido inicializados. Sin embargo un DataSet puede guardar
su contenido a XML o llenarse desde un XML, haciendo esto excepcionalmente útil para
Bibliografías
http://users.dsic.upv.es/~jlinares/csharp/Tema%203.pdf
es/dotnet/csharp/programming-guide/main-and-command-args/
http://engineersofsystems.blogspot.com/2014/07/la-biblia-de-c-anaya-espanol-pdf.html
es/dotnet/csharp/language-reference/keywords/selection-statements
http://users.dsic.upv.es/~jlinares/csharp/lenguajeCsharp.pdf
http://www.itnuevolaredo.edu.mx/takeyas/apuntes/poo/Apuntes/05.-
%20Excepciones.pdf
https://ortizol.blogspot.mx/2014/06/excepciones-en-csharp-parte-1-introduccion-a-las-
excepciones.html?_escaped_fragment_#
https://www.ecured.cu/Lenguaje_de_Programaci%C3%B3n_C_Sharp
http://programacionjand.blogspot.com/p/arreglos-vectores-y-matrices-en-c.html
75
http://www.tel.uva.es/personales/josdie/fprog/Material/FP06_Tema09_Arrays.pdf
http://ejerciciosresueltosdecsharp.blogspot.com/2014/03/matrices-en-c-sharp.html
https://thatcsharpguy.com/post/arreglos-en-c-sharp-parte-1/
es/dotnet/framework/data/adonet/dataset-datatable-dataview/annotating-typed-datasets
es/dotnet/framework/data/adonet/dataset-datatable-dataview/annotating-typed-datasets
http://www.ehu.eus/mrodriguez/archivos/csharppdf/ADONET/ADONET.pdf