MariaPraxedis
Becerro
- Desde
- 4 Mar 2009
- Mensajes
- 15
- Tema Autor
- #1
pregunta en .Net y procedimientos almacenados
====ESTE ES EL PROCEDIMEINTO ALMACENADO
ALTER PROCEDURE [dbo].[Ins_Clientes]
@Id_Cli varchar(8),
@Nombre varchar(Max),
@Mensaje varchar(50) OUTPUT
AS
BEGIN
INSERT INTO Clientes(Id_Cli, Nombre) VALUES (@Id_Cli,@Nombre)
set @Mensaje='Guardado'
END
==CODIGO C# PARA LLAMARLO
Funciones.Formato_Texto(Nombre);
Inicia.myCmd = new SqlCommand("Ins_Clientes", Inicia.Conexion);
Inicia.myCmd.CommandType = CommandType.StoredProcedure;
Inicia.myCmd.Parameters.AddWithValue("@Id_Cli", Id.Text);
Inicia.myCmd.Parameters.AddWithValue("@Nombre", Nombre.Text);
Inicia.myCmd.Parameters.Add("@Mensaje", SqlDbType.VarChar, 50);
Inicia.myCmd.Parameters["@Mensaje"].Direction = ParameterDirection.Output;
Inicia.Conexion.Open();
Inicia.myCmd.ExecuteReader();
Funciones.Mensaje(Inicia.myCmd.Parameters[2].SqlValue.ToString(), Pagina.Page);
Inicia.Conexion.Close();
==PREGUNTA
mis variables en el procedimiento almacenado son @Id_Cli, @Nombre, @Mensaje
¿tienen que tener el mismo nombre al ser llamados desde C#?
Inicia.myCmd.Parameters.AddWithValue("@Id_Cli", Id.Text);
Inicia.myCmd.Parameters.AddWithValue("@Nombre", Nombre.Text);
Inicia.myCmd.Parameters.Add("@Mensaje", SqlDbType.VarChar, 50);
porque sabes si se los cambio no corre pero si lo dejo asi pues si
¿Hay alguna forma de poner el nombre que quieras en el codigo C#?
NOTA sin tener que ocupar adodb como si fuese vb6 es decir sin la referencia COM de
microsoft activex data object recordset
====ESTE ES EL PROCEDIMEINTO ALMACENADO
ALTER PROCEDURE [dbo].[Ins_Clientes]
@Id_Cli varchar(8),
@Nombre varchar(Max),
@Mensaje varchar(50) OUTPUT
AS
BEGIN
INSERT INTO Clientes(Id_Cli, Nombre) VALUES (@Id_Cli,@Nombre)
set @Mensaje='Guardado'
END
==CODIGO C# PARA LLAMARLO
Funciones.Formato_Texto(Nombre);
Inicia.myCmd = new SqlCommand("Ins_Clientes", Inicia.Conexion);
Inicia.myCmd.CommandType = CommandType.StoredProcedure;
Inicia.myCmd.Parameters.AddWithValue("@Id_Cli", Id.Text);
Inicia.myCmd.Parameters.AddWithValue("@Nombre", Nombre.Text);
Inicia.myCmd.Parameters.Add("@Mensaje", SqlDbType.VarChar, 50);
Inicia.myCmd.Parameters["@Mensaje"].Direction = ParameterDirection.Output;
Inicia.Conexion.Open();
Inicia.myCmd.ExecuteReader();
Funciones.Mensaje(Inicia.myCmd.Parameters[2].SqlValue.ToString(), Pagina.Page);
Inicia.Conexion.Close();
==PREGUNTA
mis variables en el procedimiento almacenado son @Id_Cli, @Nombre, @Mensaje
¿tienen que tener el mismo nombre al ser llamados desde C#?
Inicia.myCmd.Parameters.AddWithValue("@Id_Cli", Id.Text);
Inicia.myCmd.Parameters.AddWithValue("@Nombre", Nombre.Text);
Inicia.myCmd.Parameters.Add("@Mensaje", SqlDbType.VarChar, 50);
porque sabes si se los cambio no corre pero si lo dejo asi pues si
¿Hay alguna forma de poner el nombre que quieras en el codigo C#?
NOTA sin tener que ocupar adodb como si fuese vb6 es decir sin la referencia COM de
microsoft activex data object recordset