IMASTER-53
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Acceso a datos C# con SQLServer (Aplicación web)

5 participantes

Ir abajo

Acceso a datos C# con SQLServer (Aplicación web) Empty Acceso a datos C# con SQLServer (Aplicación web)

Mensaje por turcality Miér 12 Dic 2012, 2:12 am

Gente este es mi primer post y no se como me vaya a quedar, espero que a alguien le sea útil, con el quiero lograr que alguien que conozca de estas tecnologías use estos conocimientos para practicas de acceso a datos, realizadas con el lenguaje de programación C Sharp y el gestor de base de datos SQL Server para el entorno ASP.NET, sin mas que decir empiezan los códigos

Este estilo de técnica que postearé esta hecha bajo el modelo de programación en capas, hoy en día muy útil gracias a su ventaja de mantenimiento y optimización de código por el lado del modelado web y por SQL Server con procedimientos almacenados, los cuales tienen una enorme ventaja, ya que los procesos los realizamos desde el propio gestor y así optimizamos valiosos recursos

ESTRUCTURA WEB

**********************************************************
Creen el archivo con el nombre Default.aspx
**********************************************************

entre las etiquetas <body></body> tendrán el siguiente código:

<div id="contenedor">
<form id="form1" runat="server">
<table cellspacing="1" align="center" >
<tr>
<td colspan="2">
<h2>                      <u>DATOS</u>  </h2></td>
</tr>
<tr>
<td class="style3">
 </td>
<td>
 </td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label1" runat="server" Text="ID:"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtid" runat="server" Width="40px" ReadOnly="True"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label2" runat="server" Text="Nombres y apellidos:"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtnomapell" runat="server" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label3" runat="server" Text="Edad:"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtedad" runat="server" Width="40px" MaxLength="3"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label4" runat="server" Text="Sexo:"></asp:Label>
</td>
<td>
<asp:DropDownList ID="cbsexo" runat="server" Width="40px">
<asp:ListItem Selected="True"></asp:ListItem>
<asp:ListItem>M</asp:ListItem>
<asp:ListItem>F</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="style3">
 </td>
<td>
 </td>
</tr>
<tr>
<td align="left" colspan="2">
      
<asp:Button ID="btnnuevo" runat="server" Text="Nuevo" onclick="btnnuevo_Click"
/>
 <asp:Button ID="btninsertar" runat="server" Text="Guardar" onclick="btninsertar_Click" />
 <asp:Button ID="btnmodificar" runat="server" Text="Modificar"
onclick="btnmodificar_Click" />
 <asp:Button ID="btneliminar" runat="server" Text="Eliminar" onclick="btneliminar_Click" />
</td>
</tr>
<tr>
<td class="style3">
 </td>
<td>
 </td>
</tr>
<tr>
<td align="left" colspan="2">
                  
<asp:Label ID="Label5" runat="server" Text="Buscar por Nombres y apellidos:"></asp:Label>
</td>
</tr>
<tr>
<td align="left" class="style2" colspan="2">
        
<asp:TextBox ID="txtbusqueda" runat="server" Width="200px"></asp:TextBox>
 <asp:Button ID="btnbuscar" runat="server" Text="Buscar"
onclick="btnbuscar_Click" />
</td>
</tr>
</table>
</form>
</div>

****************************************************************
Dentro del archivo Default.aspx.cs tendrán el siguiente código:
****************************************************************

public void Mensaje(string mensaje)
{
string s = "<SCRIPT language=\"javascript\">" +
"window.alert (\" " + mensaje.Trim() + "\");</SCRIPT>";
RegisterStartupScript("mensaje", s);
}

public void limpiar()
{
txtid.Text = "";
txtnomapell.Text = "";
txtedad.Text = "";
cbsexo.Text = "";
}

protected void Page_Load(object sender, EventArgs e)
{

}

protected void btnnuevo_Click(object sender, EventArgs e)
{
limpiar();
txtnomapell.Focus();
}
protected void btninsertar_Click(object sender, EventArgs e)
{
if (txtnomapell.Text == "")
{
Mensaje("El campo ''Nombres y apellidos'' está vacío");
return;
}
if (txtedad.Text == "")
{
Mensaje("El campo ''Edad'' está vacío");
return;
}
if (cbsexo.Text == "")
{
Mensaje("Escoga el combo ''Sexo'' está vacío");
return;
}
objDatos INS = new objDatos();
try
{
INS.NOMB_APELL = txtnomapell.Text;
INS.EDAD = Convert.ToInt16(txtedad.Text);
INS.SEXO = cbsexo.Text;
string var = opeDatos.InsertarDatos(INS);
Mensaje(var);
}
catch (Exception ex)
{
Mensaje("" + ex.Message);
}
}
protected void btnmodificar_Click(object sender, EventArgs e)
{
if (txtnomapell.Text == "")
{
Mensaje("El campo ''Nombres y apellidos'' está vacío");
return;
}
if (txtedad.Text == "")
{
Mensaje("El campo ''Edad'' está vacío");
return;
}
if (cbsexo.Text == "")
{
Mensaje("Escoga el combo ''Sexo'' está vacío");
return;
}
try
{
objDatos INS = new objDatos();
INS.ID = Convert.ToInt16(txtid.Text);
INS.NOMB_APELL = txtnomapell.Text;
INS.EDAD = Convert.ToInt16(txtedad.Text);
INS.SEXO = cbsexo.Text;
opeDatos.ActualizarDatos(INS);
Mensaje("Registro modificado correctamente");
}
catch (Exception ex)
{
Mensaje("" + ex.Message);
}
}
protected void btneliminar_Click(object sender, EventArgs e)
{
if (txtid.Text == "")
{
Mensaje("Búsque primero el registro para poder eliminar");
return;
}
try
{
objDatos ELM = new objDatos();
ELM.ID = Convert.ToInt16(txtid.Text);
opeDatos.EliminarDatos(ELM);
limpiar();
Mensaje("Registro eliminado correctamente");
}
catch (Exception ex)
{
Mensaje("" + ex.Message);
}
}
protected void btnbuscar_Click(object sender, EventArgs e)
{
if (txtbusqueda.Text == "")
{
Mensaje("El campo búsqueda está vacío");
return;
}
try
{
SqlConnection SqlCon = new SqlConnection();
SqlCon.ConnectionString = conexion.cnx;
SqlCommand cmd = new SqlCommand("Buscar", SqlCon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@nomb_apell", txtbusqueda.Text.ToUpper());
SqlCon.Open();
SqlDataReader r = cmd.ExecuteReader();
r.Read();
txtid.Text = Convert.ToString(r.GetValue(0));
txtnomapell.Text = Convert.ToString(r.GetValue(1)).Trim();
txtedad.Text = Convert.ToString(r.GetValue(2));
cbsexo.Text = Convert.ToString(r.GetValue(3));
}
catch (Exception ex)
{
Mensaje("Los nombres y apellidos buscados no exiten");
}

*****************************************************
Crear el archivo clase donde estará la conexión
con el nombre: conexion.cs
*****************************************************

public class conexion
{
public static string cnx = "Data Source=(local); Initial Catalog=BDPractica; Integrated Security= True";
}

*****************************************************
Creamos el archivo clase: objDatos.cs
*****************************************************

public class objDatos
{
int id, edad;
string na, sexo;

public int ID
{
get { return id; }
set { id = value; }
}
public string NOMB_APELL
{
get { return na; }
set { na = value; }
}
public int EDAD
{
get { return edad; }
set { edad = value; }
}
public string SEXO
{
get { return sexo; }
set { sexo = value; }
}
}

*****************************************************
creamos el archivo clase: opeDatos.cs
*****************************************************

public class opeDatos
{
public static string InsertarDatos(objDatos OPE)
{
SqlConnection SqlCon = new SqlConnection();
SqlCon.ConnectionString = conexion.cnx;
SqlCommand cmd = new SqlCommand("Insertar", SqlCon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@nomb_apell", OPE.NOMB_APELL.ToUpper());
cmd.Parameters.AddWithValue("@edad", OPE.EDAD);
cmd.Parameters.AddWithValue("@sexo", OPE.SEXO);

cmd.Parameters.Add(new SqlParameter("@ErrorMessage", SqlDbType.NVarChar, 255));
cmd.Parameters["@ErrorMessage"].Direction = ParameterDirection.Output;

SqlCon.Open();
cmd.ExecuteNonQuery();
SqlCon.Close();

return (string)cmd.Parameters["@ErrorMessage"].Value;
}
public static void ActualizarDatos(objDatos OPE)
{
SqlConnection SqlCon = new SqlConnection();
SqlCon.ConnectionString = conexion.cnx;
SqlCommand cmd = new SqlCommand("Actualizar", SqlCon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@id", OPE.ID);
cmd.Parameters.AddWithValue("@nomb_apell", OPE.NOMB_APELL.ToUpper());
cmd.Parameters.AddWithValue("@edad", OPE.EDAD);
cmd.Parameters.AddWithValue("@sexo", OPE.SEXO);
SqlCon.Open();
SqlDataReader r = cmd.ExecuteReader();
SqlCon.Close();
}
public static void EliminarDatos(objDatos OPE)
{
SqlConnection SqlCon = new SqlConnection();
SqlCon.ConnectionString = conexion.cnx;
SqlCommand cmd = new SqlCommand("Eliminar", SqlCon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@id", OPE.ID);
SqlCon.Open();
SqlDataReader r = cmd.ExecuteReader();
SqlCon.Close();
}
}

EN EL SQL SERVER

Procedimiento almacenado para Insertar

CREATE procedure [dbo].[Insertar]
@nomb_apell char(100),
@edad int,
@sexo char(1),
@ErrorMessage As nvarchar(255) Output
as
begin
SET NOCOUNT ON;
If(Exists(SELECT * From datos WHERE nomb_apell=@nomb_apell))
Begin
Set @ErrorMessage = 'Los Nombres y apellidos ya existen';
Return;
End
Begin Try
insert into datos
(nomb_apell, edad, sexo) values (@nomb_apell, @edad, @sexo)
Set @ErrorMessage = 'Registro insertado satisfactoriamente';
End Try
Begin Catch
Set @ErrorMessage = ERROR_MESSAGE();
End Catch
end

Procedimiento almacenado para Eliminar

CREATE procedure [dbo].[Eliminar]
@id int
as begin
delete datos
where
[id] = @id
End

Procedimiento almacenado para Buscar

CREATE procedure [dbo].[Buscar]
@nomb_apell char(100)
as begin
select
id,
nomb_apell,
edad,
sexo
from datos
where
nomb_apell= @nomb_apell
return @nomb_apell
end

Procedimiento almacenado para Actualizar

ALTER procedure [dbo].[Actualizar]
@id int,
@nomb_apell char(100),
@edad int,
@sexo char(1)
as begin
update datos set
[nomb_apell] = @nomb_apell,
[edad] = @edad,
[sexo] = @sexo
where
[id] = @id
end

ADJUNTO UNA IMAGEN PARA QUE SE UBIQUEN MEJOR DE COMO TIENE QUE QUEDARLES EL PROYECTO, ASI COMO LAS RUTAS, DIRECTORIOS, ARCHIVOS, ETC.

Acceso a datos C# con SQLServer (Aplicación web) 21kw109

Nota: si lo hacen al pie de la letra no les debería dar ningún error al compilar ni al ejecutar las operaciones, cualquier pregunta estoy a la orden para responder, el tema es para usuarios que ya tienen conocimientos previos sobre este tipo de tecnología

Espero sus comentarios, y puntos ya que recien me inicio y necesito reputacion y demás, jejeje, de antemano muchas gracias.
turcality
turcality
Avanzado
Avanzado

Pais : Nicaragua
Móvil : Nokia 311
Compañia : Movistar
Mensajes : 90
Fecha de inscripción : 12/07/2012
Sexo : Masculino

Volver arriba Ir abajo

Acceso a datos C# con SQLServer (Aplicación web) Empty Re: Acceso a datos C# con SQLServer (Aplicación web)

Mensaje por Mackiavelico Miér 12 Dic 2012, 5:55 am

Espero que sea tutorial hecho por ti! Y no de otro lugar! Te dare +1 para que sigas aportando!
Mackiavelico
Mackiavelico
Member VIP
Member VIP

Pais : El Salvador
Móvil : Nokia ExpressMusic 5130 c-2
Mensajes : 1623
Fecha de inscripción : 17/06/2012
Sexo : Masculino
500 MENSAJES
1000 MENSAJES
1500 MENSAJES
100 REPUTACION
500 REPUTACION

Volver arriba Ir abajo

Acceso a datos C# con SQLServer (Aplicación web) Empty Re: Acceso a datos C# con SQLServer (Aplicación web)

Mensaje por turcality Miér 12 Dic 2012, 6:20 pm

gracias amigo por el punto, y te puedo asegurar que el post es de mi total autoria, es una practica que hice hace unos meses en la universidad, cuidate, Dios te bendiga Tanhks
turcality
turcality
Avanzado
Avanzado

Pais : Nicaragua
Móvil : Nokia 311
Compañia : Movistar
Mensajes : 90
Fecha de inscripción : 12/07/2012
Sexo : Masculino

Volver arriba Ir abajo

Acceso a datos C# con SQLServer (Aplicación web) Empty Re: Acceso a datos C# con SQLServer (Aplicación web)

Mensaje por infernus Sáb 05 Ene 2013, 1:20 pm

Veo que estas usando el ADO Conectado, muy buena la practica, me recuerda cuando programaba :D
infernus
infernus
Vigilante
Vigilante

Pais : El Salvador
Mensajes : 260
Fecha de inscripción : 04/12/2012
Sexo : Masculino

Volver arriba Ir abajo

Acceso a datos C# con SQLServer (Aplicación web) Empty Re: Acceso a datos C# con SQLServer (Aplicación web)

Mensaje por anonimous Sáb 05 Ene 2013, 1:32 pm

Está genial amigo gracias esto me recuerda cuando estaba en la universidad
anonimous
anonimous
Master Proxy
Master Proxy

Pais : Nicaragua
Mensajes : 1447
Fecha de inscripción : 17/09/2012
Sexo : Masculino

Volver arriba Ir abajo

Acceso a datos C# con SQLServer (Aplicación web) Empty Re: Acceso a datos C# con SQLServer (Aplicación web)

Mensaje por turcality Lun 07 Ene 2013, 12:47 am

Gracias infernus y anonimous se les agradece sus comentarios Tanhks
turcality
turcality
Avanzado
Avanzado

Pais : Nicaragua
Móvil : Nokia 311
Compañia : Movistar
Mensajes : 90
Fecha de inscripción : 12/07/2012
Sexo : Masculino

Volver arriba Ir abajo

Acceso a datos C# con SQLServer (Aplicación web) Empty Re: Acceso a datos C# con SQLServer (Aplicación web)

Mensaje por yacx Mar 08 Ene 2013, 7:30 pm

wooooooow esta super amigo pues te lusiste con esto ejjeejej Tanhks +1 Ya dejado
yacx
yacx
Master Proxy
Master Proxy

Pais : Guatemala
Mensajes : 1336
Fecha de inscripción : 12/07/2012
Sexo : Masculino
500 MENSAJES
1000 MENSAJES
100 REPUTACION
500 REPUTACION

Volver arriba Ir abajo

Acceso a datos C# con SQLServer (Aplicación web) Empty Re: Acceso a datos C# con SQLServer (Aplicación web)

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.