domingo, 9 de enero de 2011

Tarea Diplomado en C# de Tekhne, NUR




  1. En comentarios de código, escoger una empresa ficticia o real que venda algún producto. Puede ser una farmacia, una heladería, una venta de autos o cualquier empresa de ventas.
  2. Crear tabla de los productos que incluya nombre de producto, id de producto, precio
  3. Crear tabla de clientes con sus datos (columnas id,nombre, apellido, dirección, email)
  4. Crear tabla de ventas de los productos (id de producto, id de cliente, precio, fecha de venta)
  5. Crear formularios en C# para poder insertar, borrar, actualizar datos de clients, ventas y productos.
  6. En un formulario, que se pueda realizar la búsqueda de clientes por nombre, apellido, dirección, email
  7. En otro formulario, que se pueda buscar productos por (id, producto, precio)
  8. Utilizando LINQ, mostrar las ventas por día, mes, año (nombre de producto, cliente que compró y total ganado)
    No olvidar:
  9. Activar conexión asíncrona, incluir comentarios en los formularios para describirlos. Todo el código debe utilizar try and catch, incluyendo Exceptions, InvalidOperationException y SQLExeptions.
  10. Utilizar procedimientos almacenados en todas las consultas, excepto en el ejercicio 8.
  11. Toda la aplicación debe acceder a la conexión almacenada en el AppConfig 
  12. Que exista un usuario administrador con Acceso para modificar datos y un ayudante que solo tiene permisos de lectura para búsquedas.
Foros de ayuda de C# en español:
http://social.msdn.microsoft.com/Forums/es-ES/vcses/threads

Foros de ayuda en ADO.NET, SQL Server en español:
http://social.msdn.microsoft.com/Forums/es-ES/category/devdataes

Documentación de SQL Server en español:
http://msdn.microsoft.com/es-es/library/ms187875.aspx

Documentación de ADO.net en español:
http://msdn.microsoft.com/es-es/library/e80y5yhx(v=vs.80).aspx




Cualquier duda escribanme

People who read this post also read :



11 comentarios:

  1. Mijail, a tu pregunta sobre como bloquear y forzar bloqueos en transacciones, acá hay un buen ejemplo:
    LINK

    ResponderEliminar
  2. Marcelo, sobre tu duda de como obtener el usuario de windows en C#, te mando este
    Link

    ResponderEliminar
  3. NO SE OLVIDEN INCLUIR LA BASE DE DATOS EN EL PROYECTO !!.
    Fecha de entrega enero 28 (si entregan antes, mejor)

    ResponderEliminar
  4. Daniel se me olvido pedirte en la clase y espero que por favor puedas incluir en este foro un ejemplo de como ejecutar un script de sql desde el programa de c# esto para poder crear la base de datos, su estuctura y tal vez llenarla desde el mismo script con algunos datos.

    ResponderEliminar
  5. Hola Daniel felicidades por el Blog.. y no es un Foro XD macm jajajajajajaa me agrada que exista un Blog con estas caracteristicas en la red y que sea de aqui de Cochabamba Bolivia..

    Macm lo que pides se puede realizar de la siguiente manera aunque tenemos que jugar un poco.

    Mira te explico con un store procedure llamado Cliente.sql que contiene:

    USE [SPprueba]
    GO
    /****** Object: StoredProcedure [dbo].[spXCCliente] Script Date: 22/01/2011 0:15:54 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    CREATE PROCEDURE [dbo].[spXCCliente]


    @Header int=0,
    @id int = 0,
    @ID2 int = 0,
    @Cliente nchar(10) = NULL
    AS
    BEGIN

    IF @Header= 1
    BEGIN
    INSERT INTO Cliente (id, ID2, Cliente)
    VALUES (@id, @ID2, @Cliente)
    END

    END


    En codigo tendrian que hacer un respaldo (si asi lo quieren) y cambiarle la extension por ekemplo txt que es mas facil, abren el archivo y se lo pasan a una variable y le quitan por código esta parte:



    USE [SPprueba]
    GO
    /****** Object: StoredProcedure [dbo].[spXCCliente] Script Date: 23/01/2011 1:15:54 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO


    Esto por que cuando lo ejecuten en los métodos que les pongo abajo, pues notaran que se pone por default.



    ------------------------------------------------------------------------------------------------------------------
    ------------------------------------------------------------------------------------------------------------------
    public void AccionCompilarSP(string Template)
    {
    OleDbConnection conection = null;
    OleDbDataReader dataReader = null;

    Server = Program.GServer; // Se obtiene de una clase que es el punto de acceso principal de la aplicaCION
    DataBase = Program.GDataBase; // lo mismo
    User = Program.GUser; //lo mismo
    Password = Program.GPassword; // lo mismo
    string OLEDBConec= "Provider=SQLOLEDB.1;Password="+Password+";Per sist Security Info=True;User ID="+User+";Initial Catalog="+DataBase+";Data Source="+Server;

    try
    {
    conection = new OleDbConnection(OLEDBConec);
    conection.Open();
    ExecuteSQL(Template, conection, ref dataReader);
    }
    catch (Exception e)
    {
    MessageBox.Show(e.Message, "ScriptEjecutor", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
    }
    finally
    {
    if (conection != null)
    {
    conection.Close();
    }

    if (dataReader != null)
    {
    dataReader.Close();
    }
    }

    }

    public static void ExecuteSQL(string query, OleDbConnection conection, ref OleDbDataReader dataReader)
    {
    OleDbCommand comando;
    try
    {
    comando = conection.CreateCommand();
    comando.CommandType = CommandType.Text;
    comando.CommandText = query;

    if (dataReader != null)
    {
    dataReader.Close();
    }

    dataReader = comando.ExecuteReader();

    }
    catch (Exception e)
    {
    throw e;
    }
    }

    Es algo que se puede hacer espero que te sirva de ayuda o bien puedes crear un app.config con las varibles de conexion me da pereza la verdad hacerlo. Solo lo hice esto en un momento ya que tengo que seguir haciendo mis cosas

    Saludos :P

    ResponderEliminar
  6. Otra vez yo por aqui... otra opcion y mas sencilla esta haciendo una llamada. A un arc

    using System.Data.SqlClient;

    using System.IO;

    using Microsoft.SqlServer.Management.Common;

    using Microsoft.SqlServer.Management.Smo;



    namespace ConsoleApplication1

    {

    class Program

    {

    static void Main(string[] args)

    {

    string sqlConnectionString =

    "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True";

    FileInfo file = new FileInfo("C:\\snifer.sql");

    string script = file.OpenText().ReadToEnd();

    SqlConnection conn = new SqlConnection(sqlConnectionString);

    Server server = new Server(new ServerConnection(conn));

    server.ConnectionContext.ExecuteNonQuery(script);

    }

    }

    }

    ResponderEliminar
  7. Gracias Sniffer. Con que me incluyan el backup de la base de datos soy feliz.

    Pero si quieren hacer lo de sniffer perfecto.

    ResponderEliminar
  8. Oh, Macm.
    Tal vez esto no este claro. Cada uno se crea sus propias tablas y vistas.

    Es un trabajo desde 0.

    ResponderEliminar