lunes, 11 de mayo de 2015

Programacion C# Borrado datos en MS Access

Introducción 


En este post veremos como borrar los registro de una base de datos en access usando c# y sentencias sql

Desarrollo

para no perder el trabajo usamos directamente el proyecto anterior

Entramos de una en la clase del proyecto anterior y  Creamos un método para la clase clase_conexion_sql_access llamado borrar_estudiante_seleccionado y resivira una sobrecarga tipo string cedula 
para saber que cedula de que estudiante borraremos.



la sentencia delete de sql nos permite borrar un registro  existen dos forma de crear esta sentencia

un delete que generico sin clausura where que borrara todos los datos de la tabla objetivo

o delete con clausura where que borrara los registro con los que se haga consicidencia entre campo y valor para explicar mejor esto se debe entender que un registro de base de datos tiene x cantidad de campos.  asi que cuando queremos borrar un registro de un alumno cuya cedula sea x  colocamos el where  y decimos que campos sera igual a x entre comillas simple

ejemplo (delete from tabla Where Campo= 'x')

Asi indicamos al motor de bd que solo borre el o los registro en los cuales el campo sea igual al valor asignado por el usuario. en este caso el campo es cedula y el valor es pasado dado por el metodo en su sobrecarga, la cual concatenamos para tener toda la sentencia armada.




Una vez tengamos al sentencia lista se ejecuta igual que en objetivo anterior Agregar datos a ms access. pues creamos un  un OleDbCommand y le asignamos sentencia y conexion , por ultimo  ejecutamos dentro de un hilo abierto y luego cerramos el hilos. para finalizar retornamos true para indicar que se cumplió con el objetivo


 agregamos un boton y le ponemos el texto de "borrar estudiante seleccionado" al form 




Ahora regresamos al boto de borrado y dentro de su evento click colocamos un bloque try/catch


 Dentro del bloque try.
Para poder saber que cedula tenemos del la linea selecionada por el usuario en el datagridview usamos la propiedad SelectedRows que nos permite recorrer el arreglo de linieas selecionadas por el usuario, indicamos la 0 pues es la primera por el usuario , luego la celda de esa linea por nombre que en este caso sea la " cedula" y su valor en string




llamamos a la instancia de la clase y su metodo borrar estudiante y le damos al sobrecarga cedula



podemos rescatar o no el retorno de este metodo para este ejercicio no se realizo esa tarea



por ultimo indicamos al usuario que se borro el registro con exito


Ejemplo

Seleccionamos el registro dentro del data grid view

borramos y nos informa 


refrescamos la pantalla , cargamos los datos de del datagridview y percatamos que el registro ya no se encuentra

lunes, 4 de mayo de 2015

Programacion C# Ingresar Datos en MS Access

Introduccion


para este post veremos como conectar agregar datos al archivos access de ms desde c# usando la sentencia de sql insert into, 

Explicacion

Primero que nada ampliamos el diseño del form basándonos en el anterior proyecto



Agregamos un control GroupBob que contenga  6 Text Box y un boton





ahora pasamos a la clase clase_conexion_sql_access y agregaos un metodo se llamara ingresar a la base de datos el mismo recivira 7 parametros esos siete parametros son los mismo 7 campo que contiene la tabla estudiante_1 de la base de datos


declaramos un objeto tipo string que contiene la sentencia  la sentencia de sql insert  nos permite  ingresar datos usando sql  este metodo se llama inyeccion sql pues la sentencia tiene una estructura y a su vez los datos que seran ingresada a la tabla objetivo para dividir la sentencia y poder entenderla debemos apreciarla una vez armada
         



   insert llama al al metodo en el controlador sql para ingresar la data into table especifica la tabla que sera
  contenedora de los nuevos datos, donde aparece los primeros parentecis  hace llamado a los campos que seran agregados ojo si el campo no tiene valor por defecto   y es campo notnull ( no nulo) dara error si no es llenado con datos al momento de ingresar datos a la tabla entoces nombramos los campos y en value los datos en el mismo orden que en la seccion anterior  pues en ese orden sera ingresado
a la tabla. los datos deben esta contenido en comillas simples (') o comillas dobles (")  el mismo orden que tiene  la seccion de llamado de campos la tiene la seccion value   el ejemplo de la sentencia seria asi 


insert into estudiante_1 (cedula,nombre,apellido,numero,correo,edad,carrera) value ('20','nova','sanchez','04165555555','kopacanova47@gmail.com','24','computacion')


declaramos nuestro objeto oledbConnection que nos permite conectar con la base de datos y le asignamos la sentencia de conexion


 creamos el objeto comando de la clase OleDbCommand que nos permite ejecutar sentencias de alteracion a base de datos  esta clase requiere dos parametros al memento de ser instanciada que son  la sentencias y el objeto OleDbConnection que en este caso es  conn


el objeto de la clase  OleDbCommand  nos permite ejecutar sentencias de alteracion a base de datos  esta clase requiere dos parametros al memento de ser instanciada que son  la sentencias y el objeto OleDbConnection que en este caso es  conn


especificamos que el tipo de comando que vamos a ejecutar sera tipo texto   



Procedemos a ejecutar la seccionde abrir la conexion ejecutar la sentencia y cerrar la conexión en un bloque try


al final retornamos un true pues nuestro metodo es tipo bool

Pasamos al evento click del boton

en el llamamos a la clase y su metodo pasamos la cantidad de parametros adecuado ( el ultimo que es carrera solo pasamos la propiedad text del control combobox) y avisamos al usuario que se a completado con exito el almacenamiento de los campos



al final del bloque try levantamos el evento del boton 3 para poder ver los elementos que fueron agregados a la tabla

al final queda asi


ingreso los datos y me avisa

muestro en pantalla la grilla refrescada con los nuevos datos


Ejemplo

Ejercicio

Este ejemplo solo modifica sobre la tabla estudiantes, pero puede basarse en los conocimientos para modificar sobre la tabla carreras.

lunes, 20 de abril de 2015

Programacion C# - Manejo de Archivos

Inicio


Para este post veremos lo que es el manejo de archivos desde una aplicacion en lenguaje C#
a su vez tambien ver las propiedades del archivo, su manejo  y llamado a procesos


para iniciar debemos tener una aplicacion  diseñada de esta manera



y en la clase de form  llamar a los debidos names spaces



Desarrollo 


 El botón del llamado a las ruta

este metodo resive  una sobre carga de tipo control label   y una sobre carga de tipo opcional booleana

el metodo dentro tiene una estructura de seleccion  para lo cual esta  de ser cierta abrira un savedialog
 de lo contrario abrira un folderbrowserdialog

en el llamado de este metodo especificamos el control label que queremos modificar  y le decimos si abrira un filesavedialog o un folderbrowsedialog con una simple variable boleana




 una vez hehco los metodo que buscan las rutas de los archivos ahora trabajaremos con el metodo que trabajara directamente con los archivos
declaramos un metodo que resiva un int como so0bre carga la cual sera evaluada  en un bloque switch. Atencion: En ocaciones si la aplicacion no tiene permisos de administrador o el dico objetivo esta portegidono se podran realizar ningunas de las actividades con los archivos



dependiendo del valor del objeto se ejecutara un caso y en ese caso un bloque de codigo

para el caso uno de copiar archivo 


 la clase File de systems.io nos permite trabajar los archivos como   si estubieramos usandolos con el explorer.exe pero en este caso es la  aplicacion la que se encarga de hacer todo el trabajo en este caso usamos el metodo Copy() .resive tres sobrecargas La ruta del archivo objetivo que es la primer sobrecarga y la segunda que es el destino y por ultimo si queremos sobre escribir el archivo en caso de que ya exista en el destino 

para el caso 2 mover el archivo

   si es dos mueve o cortar y pegar usando el metodo Move de la clase file. este metodo Resive 2 sobrecargas, La ruta del archivo objetivo que es la primer sobrecarga y la segunda que es el destino


Caso 3 eliminar el archivo 


 si es 3 eliminau usando el metodo Delete de la clase file la sobrecarga que resive en este caso es solamente la ruta del arichivo, no pasa por la papelera de reciclaje

caso 4 Ejecutar el archivo

  en este caso usamos la clase process que nos permite a la aplicacion poder sobre    el ambiente de trabajo referente a los procesos del sistema operativo en este caso el metodo start nos permite llamar una aplicacion 
                         al llamarla se ejecutara con la aplicacion que tiene asignada por defecto
                         es decir que si llamamos a un .txt con el metodo Start() entoces el sistema
                         operativo resive el comando y lo ejecuta llamando al archivo y abriendolo con la aplicacion que tienen asignada para esa extencion en este caso por lo general es el bog de notas

process :Proporciona acceso a los procesos locales y remotos y le permite iniciar y detener los procesos del sistema local.
Para ver el código fuente .NET 


caso 5 Abrir la ruta del archivo


   la calse FileInfo nos da datos sobre el archivo en este caso queremos saberla ruta donde se encuentra el archivo objetivo  una vez con ello  llamamos al metodo STart de la clase process en ella  le pasaremos la ruta donde esta contenido el archivo el metodo start detecta que no es una aplicacion pero si una ruta por lo tanto lo ejecuta con el explorer.exe 




Ejemplo



ejemplo de manejo de archivos




domingo, 19 de abril de 2015

Programacion C# Rescatando Datos de MS Access

Programación C# Rescatando Datos de MS Access 



Lo que haremos aqui es rescatar datos que se encuentran contenidos dentro de una base de datos access y visualizarlos dentro del programa. Antes que nada debemos entrar a la base de datos access e ingresar algunos datos  para poder rescatarlos después con usando el programa


en la tabla de carreras ingresaremos  id  y nombre de carreras en este caso usare las del instituto


Y en la tabla de  Estudiante introduciré algunos ejemplos a la asar de mi imaginación como prueba



Desarrollo

En nuestro proyecto que podria ser el anterior ( conectar a una base de datos access) 
añadiremos un control datagridview y un control combobox.




En la clase donde se realizara la conexion se agregara un metodo en este caso se llama Traer_datos_de_acess_estudiantes. este metodo se encarga de devolver el resultado de una sentencia sql Select ejecutada en la base de datos.


El objeto datatable nos permite almacenar elemento en forma de tabla con lineas y columnas  esto es lo mas similar a un arreglo matris pero con nombre de columnas y con indices en la filas. por otro lado es un objeto vacio que se adapta al diceño de cualquier resultado de una transaccional de base de datos.




Estudiaemos un poco lo que es la sentencia sql select:
select es un comando sql de base de datos que nos permite seleccionar ( valga la redundancia) los campor de determinada tabla para ello después de SELECT se coloca los nombre de los campos, en este caso * significa todo los campos de esa tabla , si llamaremos a ciertos y determinados campos entoces los separaríamos por comas cada un de los llamado campos. Luego la palabra from nos indica en que tabla se ejecutara es decir  seguida del nombre de la tabla la forma correcta es asi :

Select  [campo1] ,[campo2], [campo3 ] From [nombre de la tabla]

A continuacion este ejemplo seria un objeto string que contiene la sentencia sql select 

la clase OleDbDataAdapter:
Representa un conjunto de comandos de datos y una conexión de base de datos que se utilizan para rellenar DataSet y actualizar el origen de datos( base de datos) de tipo OleDB 

A esta clase se le instancia y se le especifica dos sobre cargas: le primera el objeto  sentencia de base de datos en nuestro caso un select y la segunda la conexión o sentencia de coneccion a la base de datos 


el metodo FILL ejecuta la sentencia de base de datos en el origen de datos especificado y captura el resultado, este es asignado directamente en un objeto datatset o datatable que es especificado como sobrecarga en el metodo.


para ello antes de ejecutar el llamado al metodo fill()  se debe abrir la coneccion a base de datos con el metodo open() del objeto coneccion ( conn ). Al finalizar el el bloque TRY  se cierra para que el hilo al origen de datos no quede abierto y se hace buen uso de los recursos y técnicas de programación.



igual haremos con el tabla de carrear apara este ejemplo varia solamente en que la sentencia llama resultados de esa tabla y no la de estudiantes 



dentro del boton  del formulario que trae los los resultado declaramos el evento click 
el esquema es el siguiente



Creamos dos datatables uno para estudiantes que alimentara el datagridview y otro el de carreras que alimentara el combobox



primero informamos que estamos buscando los datos al usuario
luego  con Application.doeventas() actualizamos todo lo referente a diceño y cambio de las propiedades de los controles.

A cada una de los objetos  datatables que creamos le asignamos el resultado del metodo que le corresponde  de la clase de conexión.





Para cargar los datos al DataGridView o grilla  usamos la propiedad DataSouse que sera el objeto Dt_estudiantes, ademas le especificamos que sea la vista por defecto que traer la tabla  ( o vista por defecto de los resultados del origen de datos)  





Al combobox le especificamos que la fuente de los datos sera el objeto datatable Dt_carreras, Y le especificamos que el miembro a mostrar ( digase el texto que se mostrara en la lista) sera la columna carrera de dicha fuente . Asi mismo se especifica el valor del miembro ( el valor  real del item seleccionado en el lista) con el nombre de la columna





Y el resultado es el sigueinte una Grilla con los datos de la tabla estudiantes y un ComboBox con los datos de la tabla Carreras.




Ejemplo



Referencias


programacion-c-conexion-con-m-accesss


NestJs Error on SecretKey for JWToken

  Imagine this you are coding happy, configuring your module has   auth.module.ts   using on your register the classic call to get env value...