Acceso a datos C# con SQLServer (Aplicación web)
5 participantes
Página 1 de 1.
Acceso a datos C# con SQLServer (Aplicación web)
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
**********************************************************
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();
}
}
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.
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.
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.
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- Avanzado
- Pais :
Móvil : Nokia 311
Compañia : Movistar
Mensajes : 90
Fecha de inscripción : 12/07/2012
Sexo :
Re: Acceso a datos C# con SQLServer (Aplicación web)
Espero que sea tutorial hecho por ti! Y no de otro lugar! Te dare +1 para que sigas aportando!
Mackiavelico- Member VIP
- Pais :
Móvil : Nokia ExpressMusic 5130 c-2
Mensajes : 1623
Fecha de inscripción : 17/06/2012
Sexo :
Re: Acceso a datos C# con SQLServer (Aplicación web)
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
turcality- Avanzado
- Pais :
Móvil : Nokia 311
Compañia : Movistar
Mensajes : 90
Fecha de inscripción : 12/07/2012
Sexo :
Re: Acceso a datos C# con SQLServer (Aplicación web)
Veo que estas usando el ADO Conectado, muy buena la practica, me recuerda cuando programaba :D
infernus- Vigilante
- Pais :
Mensajes : 260
Fecha de inscripción : 04/12/2012
Sexo :
Re: Acceso a datos C# con SQLServer (Aplicación web)
Está genial amigo gracias esto me recuerda cuando estaba en la universidad
anonimous- Master Proxy
- Pais :
Mensajes : 1447
Fecha de inscripción : 17/09/2012
Sexo :
Re: Acceso a datos C# con SQLServer (Aplicación web)
Gracias infernus y anonimous se les agradece sus comentarios
turcality- Avanzado
- Pais :
Móvil : Nokia 311
Compañia : Movistar
Mensajes : 90
Fecha de inscripción : 12/07/2012
Sexo :
Re: Acceso a datos C# con SQLServer (Aplicación web)
wooooooow esta super amigo pues te lusiste con esto ejjeejej
yacx- Master Proxy
- Pais :
Mensajes : 1336
Fecha de inscripción : 12/07/2012
Sexo :
Temas similares
» Solucion al no se instalo la aplicacion y/o no se puede instalar la aplicacion
» mayor velocidad de acceso a los programas en tu windows
» Apagar pc con acceso directo en Windowa XP
» WIFI CREA TU PROPIO PUNTO DE ACCESO (TUTO)
» Reiniciar pc con doble clic en un acceso directo
» mayor velocidad de acceso a los programas en tu windows
» Apagar pc con acceso directo en Windowa XP
» WIFI CREA TU PROPIO PUNTO DE ACCESO (TUTO)
» Reiniciar pc con doble clic en un acceso directo
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.