Tarea Diplomado en C# de Tekhne, NUR
- 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.
- Crear tabla de los productos que incluya nombre de producto, id de producto, precio
- Crear tabla de clientes con sus datos (columnas id,nombre, apellido, dirección, email)
- Crear tabla de ventas de los productos (id de producto, id de cliente, precio, fecha de venta)
- Crear formularios en C# para poder insertar, borrar, actualizar datos de clients, ventas y productos.
- En un formulario, que se pueda realizar la búsqueda de clientes por nombre, apellido, dirección, email
- En otro formulario, que se pueda buscar productos por (id, producto, precio)
- Utilizando LINQ, mostrar las ventas por día, mes, año (nombre de producto, cliente que compró y total ganado)No olvidar:
- 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.
- Utilizar procedimientos almacenados en todas las consultas, excepto en el ejercicio 8.
- Toda la aplicación debe acceder a la conexión almacenada en el AppConfig
- Que exista un usuario administrador con Acceso para modificar datos y un ayudante que solo tiene permisos de lectura para búsquedas.
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
Mijail, a tu pregunta sobre como bloquear y forzar bloqueos en transacciones, acá hay un buen ejemplo:
ResponderEliminarLINK
Marcelo, sobre tu duda de como obtener el usuario de windows en C#, te mando este
ResponderEliminarLink
Ejemplo:
ResponderEliminarEjemplo Datagrid
Acá incluyo un Ejemplo con imagenes
ResponderEliminarLes incluyo un ejemplo de manejo de archivos XML:
ResponderEliminarEjemplo de manipulación de
XML con c#
NO SE OLVIDEN INCLUIR LA BASE DE DATOS EN EL PROYECTO !!.
ResponderEliminarFecha de entrega enero 28 (si entregan antes, mejor)
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.
ResponderEliminarHola 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..
ResponderEliminarMacm 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
Otra vez yo por aqui... otra opcion y mas sencilla esta haciendo una llamada. A un arc
ResponderEliminarusing 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);
}
}
}
Gracias Sniffer. Con que me incluyan el backup de la base de datos soy feliz.
ResponderEliminarPero si quieren hacer lo de sniffer perfecto.
Oh, Macm.
ResponderEliminarTal vez esto no este claro. Cada uno se crea sus propias tablas y vistas.
Es un trabajo desde 0.