Visual CSharp .NET - Mostrar Store Procedure en una Página Web

 
Vista:

Mostrar Store Procedure en una Página Web

Publicado por Víctor E (16 intervenciones) el 30/07/2008 20:22:19
Hola a todos

Quiero hacer funcionar un Store Procedure para que se vea en una página web, esto usando Visual Studio 2005 en la parte de C# en ASP.NET Web

El problema seria que una tabla en SQL con 3 campos:

ContactID
FirstName
LastName

Al ejecutar el store procedure todos los contactos que se apelliden de cierta manera aparecerán en LastName y LO PRIMORDIAL de mi solicitud es COMO CONECTARLO con C# Y MOSTRARLO EN UNA PÁGINA WEB, ESTO ES LO QUE ME INTERESA, EL PASO A SEGUIR EN VISUAL

EL STORE PROCEDURE EN SQL ES EL SIGUIENTE:

---------------------------------------------------------------------------------------------------------------------
CREATE PROCEDURE dbo.GetPeopleByLastName (@LastName NVARCHAR(50))
AS
SELECT ContactID,
FirstName,
LastName
FROM Person.Contact
WHERE LastName = @LastName
ORDER BY ContactID
---------------------------------------------------------------------------------------------------------------------
Si este store procedure dentro de SQL lo corro con:

EXEC dbo.GetPeopleByLastName @LastName = 'Alexander'

realmente solo aparecen los contactos que se apellidan Alexander.

En una página vi que el siguiente código ES EL QUE SE UTILIZA EN C#
-----------------------------------------------------------------------------------------------------------------------------
// Your code should get the connection string from web.config
string connectionString =
@"Server=L40YUKON; Initial Catalog=AdventureWorks; Integrated Security=True;";
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand("dbo.GetPeopleByLastName"))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@LastName", "Alexander"));
conn.Open();
cmd.Connection = conn;

using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
while (rdr.Read())
{
int contactID = rdr.GetInt32(rdr.GetOrdinal("ContactID"));
string firstName = rdr.GetString(rdr.GetOrdinal("FirstName"));
Response.Write(firstName + " (" + contactID.ToString() + ")");
}
rdr.Close();
}
}
}

----------------------------------------------------------------------------------------------------------------------------

Y DE AQUI SALEN VARIOS ASPECTOS QUE PARA LOGRAR MI OBJETIVO SON PRIMORDIALES:

Todo esto lo voy a poner en el web.config de mi proyecto?
En mi interfaz web, que controles deben de ir, textbox? o como seria la interfaz y el código para dicha interfaz.

EL OBJETIVO DE TODO ESTO ES QUE QUIERO RECORDAR COMO ENLAZAR UN STORE PROCEDURE AL VISUAL STUDIO USANDO C#

Saludos y gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mostrar Store Procedure en una Página Web

Publicado por Victor M (16 intervenciones) el 31/07/2008 00:23:33
Me respondo a mi mismo ( Ya resolví mi problema y chance a alguien le sirva)

En el formulario se pone un botón y un Gridview, por que será un evento click del botón el cual jalará la información del SQL de la gente que se apellida de tal manera y mostrará esa información y aparte con su FirstName y su ContactID (Vaya, esta info se mostrará en el GridView)

El código en el archivo web.config seria:
----------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
WindowsMicrosoft.NetFrameworkv2.xConfig
-->
<configuration>
<appSettings>
<add key="ConnString" value="Data Source=INFINITUM; Initial Catalog=prueba; Integrated Security=True" />
</appSettings>
<connectionStrings/>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="false" />
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows" />
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
---------------------------------------------------------------------------------------------------------------
Donde INFINITUM es el nombre de la computadora y prueba es el nombre de la base de datos

El código en el botón del formulario web es:

----------------------------------------------------------------------------------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{

protected void Button1_Click(object sender, EventArgs e)
{

// objeto de conexion
SqlConnection con = new SqlConnection();

// objeto de conexion con propiedad
// de cadena de conexion (connectionstring)
// hacia la base de datos
con.ConnectionString = ConfigurationManager.AppSettings["ConnString"];

//comando a ejecutar de tipo transact-sql
SqlCommand comando = new SqlCommand();

comando.CommandType = CommandType.StoredProcedure;
comando.Parameters.Add(new SqlParameter("@LastName", "Elizondo"));
comando.CommandText = "dbo.GetPeopleByLastName";
comando.Connection = con;

SqlDataAdapter Adaptador = new SqlDataAdapter();
Adaptador.SelectCommand = comando;

DataSet Datos = new DataSet();
Adaptador.Fill(Datos);

GridView1.DataSource = Datos;
GridView1.DataBind();
}



}
----------------------------------------------------------------------------------------------------------------Como la interfaz es solo un botón y un gridview, no se puede meter datos desde ahi, entonces en el código de arriba capturé desde ahi Elizondo y ya corriendo esto al darle click en el botón, aparecen los datos desde la tabla.

Espero les sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mostrar Store Procedure en una Página Web

Publicado por Afm (1 intervención) el 01/09/2009 22:52:04
Pues agradezco mucho que hayas puesto la solucion, porque llevo buscando ya un buen rato, como enlazar un store procedure a un gridview.
y la verdad es que casi nadie pone un ejemplo, lo unico que enlazan son consultas sql.
pero pues eso no tiene tanto problema, gracias por escribir la solucion, a mi me sirvio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mostrar Store Procedure en una Página Web

Publicado por Sergio (1 intervención) el 27/08/2008 19:46:11
Ese tipo de codigo es de Visual Basic.NET, no te sirve en C#.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar