|
102
|
Programación / Bases de Datos / mejorar la concatenacion de elementos segun opciones
|
en: 30 Septiembre 2015, 01:39 am
|
hola a todos, estoy trabajando el prototipo de un procedimiento almacenado en Oracle, desde la aplicacion en .net me envian cuales opciones fueron marcadas(por lo menos marcaron una) y las tengo que concatenar porque es para dar privilegios a un nuevo usuario, encontre una solucion pero veo que es muy extensa, tal vez me ayudan con otra idea para hacerlo mas pequeño y mas optimo SET serveroutput ON DECLARE priv1 NUMBER(2); priv2 NUMBER(2); priv3 NUMBER(2); priv4 NUMBER(2); privilegios varchar2(512); cadena varchar2(1000); BEGIN priv1:=1;--privilegio de insert priv2:=1;--privilegio de update priv3:=0;--privilegio de delete priv4:=1;--privilegio de select IF priv1 > 0 THEN privilegios:='INSERT'; END IF; IF priv2 > 0 AND privilegios IS NOT NULL THEN privilegios:=privilegios||','||'UPDATE'; END IF; IF priv2 > 0 AND privilegios IS NULL THEN privilegios:='UPDATE'; END IF; IF priv3 > 0 AND privilegios IS NOT NULL THEN privilegios:=privilegios||','||'DELETE'; END IF; IF priv3 > 0 AND privilegios IS NULL THEN privilegios:='DELETE'; END IF; IF priv4 > 0 AND privilegios IS NOT NULL THEN privilegios:=privilegios||','||'SELECT'; END IF; IF priv4> 0 AND privilegios IS NULL THEN privilegios:='SELECT'; END IF; cadena:='grant '||privilegios||' on '||' tab_estudiante '||' to '||' my_usuario'; dbms_output.put_line(cadena); END;
|
|
|
103
|
Programación / .NET (C#, VB.NET, ASP) / caracter invalido para realizar query
|
en: 29 Septiembre 2015, 00:55 am
|
hola a todos, estoy tratando de llenar un datagrid con una consulta directa con sql a oracle, pero el error indica que el query tiene caracteres invalidos, lo raro es que ya ejecute otro query que tambien tiene caracteres parecidos y no dio error, habra alguna forma de evitar este error ya probe poniendo comillas y /o concatenando SELECT name FROM v$sysstat WHERE VALUE > 0 ORDER BY name;
el error creo que es por el caracter $ que tiene, pero el query que ya me funciono es SELECT * FROM v$sgastat;
estas consultas son para ver memoria y consultar el hitratio
|
|
|
104
|
Programación / .NET (C#, VB.NET, ASP) / Re: Pagina que hereda clase
|
en: 28 Septiembre 2015, 15:44 pm
|
bueno al final lo logre resolver en la pagina base seria asi: Public Class PaginaBase Inherits Page Protected Overrides Sub OnInit(e As EventArgs) MyBase.OnInit(e) If Me.Session("UserID") Is Nothing Then Server.Transfer("login.aspx") End If End Sub End Class
y en la pagina.aspx.vb seria Public Class pagina Inherits PaginaBase Protected Overloads Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub
MyBase no lo habia encontrado gracias por el aporte....
|
|
|
105
|
Programación / .NET (C#, VB.NET, ASP) / Re: Pagina que hereda clase
|
en: 28 Septiembre 2015, 14:09 pm
|
gracias por el aporte y lo que intento hacer es sobreescribir el metodo Page_Load del aspx.vb que viene heredado en el system.web.UI.page en la clase PaginaBase, lo de las lineas en c# es porque no he encontrado mucha documentacion para esto en visual basic y a veces he tratado de convertir codigo c# a visual basic
|
|
|
106
|
Programación / .NET (C#, VB.NET, ASP) / Re: Pagina que hereda clase
|
en: 27 Septiembre 2015, 13:25 pm
|
Gracias desde ya, aqui un poco mas de codigo, en el user control tengo el menu, y quiero que se deshabiliten los links cuando no este logueado, para eso hice la clase pagina_base, pero al crear un nuevo aspx el code behind herede automaticamente de la clase system.web.ui.page y trato de sobreescribir el page_load de modo que siempre verifique el login en la clase: Imports Businness Imports Modelo Public Class inciso3 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub Protected Sub btnguardar_Click(sender As Object, e As EventArgs) Handles btnguardar.Click Dim proveedor As New clsproveedor proveedor.setid(Integer.Parse(txtid.Text)) proveedor.setnombre(txtnombreprov.Text) proveedor.setdirec(txtdireccion.Text) proveedor.settel(Integer.Parse(txttelefono.Text)) proveedor.setgiro(txtgiro.Text) Dim prov As New proveedorBS Dim row As Integer row = prov.nuevoProveedor(proveedor) If row > 0 Then Me.lblMensaje.Text = "Insercion Correcta" Else Me.lblMensaje.Text = "Error en la Insercion" End If
este seria el code behind del aspx, y aqui abajo trato de sobreescribir el page_load con la clase pagina_base Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.HtmlControls Imports System.Web.UI.SessionPageStatePersister Imports System.Web.Services.Protocols Public Class PaginaBase Inherits System.Web.UI.Page Protected Overrides Sub OnInit(e As EventArgs) MyBase.OnInit(e) End Sub Public Sub New() Page_Load() End Sub Protected Sub Page_Load() If Me.Session("UserID") Is Nothing Then Server.Transfer("Login.aspx") End If End Sub Public Shared Sub DisableControls(ByVal Parent As Control) enabledControls(Parent, False) End Sub Public Shared Sub enabledControls(ByVal Parent As Control, ByVal b As Boolean) Dim i As Integer = 0 Dim var As Integer = 0 'For i To Parent.Controls.Count -1 While i <= Parent.Controls.Count If TypeOf Parent.Controls(i) Is Button Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is LinkButton Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is TextBox Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is DropDownList Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is ListBox Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is DataGrid Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is GridView Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is DataList Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is HtmlInputButton Then Parent.Controls(i).EnableViewState = b ElseIf TypeOf Parent.Controls(i) Is HtmlInputButton Then Parent.Controls(i).EnableViewState = b ElseIf Parent.Controls(i).HasControls Then If b Then EnableControls(Parent.Controls(i)) Else DisableControls(Parent.Controls(i)) End If End If End While 'Next End Sub Public Shared Sub EnableControls(ByVal Parent As Control) enabledControls(Parent, True) End Sub Public Function LoggedIn(HttpSessionState Session) as boolean dim Result as boolean Result = true if Session("UserName") is nothing then Result = false; if Session("UserID") is nothing null then Result = false; return Result; End Function End Class
y aqui esta el code behind del user control Public Class UCNavigation Inherits System.Web.UI.UserControl Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim Logged As Boolean Logged = paginaBase.LoggedIn(Session) If Me.lnkChangePassword.Enabled Then Me.lnkChangePassword.CssClass = "izq" Else Me.lnkChangePassword.CssClass = "izqDesactivado" End If Page.ClientScript.RegisterStartupScript(Page.GetType(), "tttt", "ocultarEnlaces(" + Logged.ToString().ToLower() + ")", True) Me.divLogin.Visible = Not Logged If Logged Then Me .lnkHome.CssClass = "izq"; Me.lblVentas.CssClass = "izq" Me.lnkAddVenta.CssClass = "izq" Me.lnkListVentass.CssClass = "izq" Me.lblProductos.CssClass = "izq" Me.lnkAddProducto.CssClass = "izq" Me.lnkListProductos.CssClass = "izqDos" Me.lblProveedores.CssClass = "izqDos" Me.lnkAddProveedor.CssClass = "izqDos" Me.lnkListProveedores.CssClass = "izqDos" Me.lblCompras.CssClass = "izqDos" Me.lnkAddCompra.CssClass = "izqDos" Me.lnkLogout.CssClass = "izq" Me.lnkListaCompras.CssClass = "izqDos" Me.lblBalance.CssClass = "izqDos" Me.lnkListaCompras.CssClass = "izqDos" Me.lnkAddCompra.CssClass = "izqDos" Me.lnkVerValance.CssClass = "izqDos" Me.lnkCaja.CssClass = "izqDos" Me.linkAddCliente.CssClass = "izqDos" Me.linkListCliente.CssClass = "izqDos" End If End Sub Protected Overrides Sub OnInit() Me.InitializeComponent() Base.OnInit() End Sub Private Sub InitializeComponent() Base.Load += New EventHandler(Me.Page_Load) End Sub End Class
|
|
|
107
|
Programación / .NET (C#, VB.NET, ASP) / Pagina que hereda clase
|
en: 27 Septiembre 2015, 03:29 am
|
hola a todos estoy tratando de implementar user control, pero hice una clase llamada pagina base, donde cada vez que se cargue una pagina se verifiquen variables de session para cargar el user control, pero la pagina por defecto hereda de system.web.ui.page y no hay herencia multiple en visual basic, por lo que necesito que esta pagina herede la clase pagina_base, pero si quito lo que hereda por defecto la pagina no funciona, agradezco sus comentarios Public Class inciso3 Inherits System.Web.UI.Page
|
|
|
108
|
Programación / .NET (C#, VB.NET, ASP) / Re: No coinciden los tipos de datos en la expresión de criterios.
|
en: 24 Septiembre 2015, 18:19 pm
|
no soy tan experto, pero pienso que deberias poner un punto de interrupcion donde agregas los valores a los parametros y ver el flujo de ejecucion, para ver cual es el valor del segundo parametro que esta ingresando, puede que se este esperando un int y este ingresando un string cmd.Parameters.AddWithValue("@idcurMat", (ViewState["idCursoMateria"]));'verificar tipo de dato de idCursoMateria
|
|
|
109
|
Programación / .NET (C#, VB.NET, ASP) / agregar linea en blanco a un dropdownlist
|
en: 24 Septiembre 2015, 14:35 pm
|
hola a todos, estoy llenando un dropdownlist desde un procedimiento almacenado con un dataset, solo que al cargarlo aparece el primer item, por lo que necesito que al cargar aparezca un espacio vacio y despues los items, lsttabla.DataSource = tabla.empleados lsttabla.DataValueField = "CODE" lsttabla.DataTextField = "NAME" lsttabla.DataBind()
y aqui la parte del metodo que estoy llamando Dim ds As DataSet Try con = New ConectDatos Dim listaParam As List(Of OracleParameter) = New List(Of OracleParameter) Dim param1 As OracleParameter = New OracleParameter("ResCursor", OracleDbType.RefCursor) param1.Direction = ParameterDirection.Output listaParam.Add(param1) ds = New DataSet ds = con.getdataset("USP_CARGA_EMPLEADO", listaParam) Return ds
|
|
|
110
|
Programación / .NET (C#, VB.NET, ASP) / Re: llenar list(of oracleparameter) a partir de una clase
|
en: 21 Septiembre 2015, 15:39 pm
|
bueno hay cosas que no se aclaran en los tutoriales, pero hay que ir listando las opciones implicitas de los diferentes metodos, el procedimiento ejecuta query le hacian falta un par de lineas para que funcionara, no entiendo porque para retornar un dataset no se necesita esas lineas Public Function EjecutarQuery(ByVal spName As String, ByVal parameters As List(Of OracleParameter)) As Integer Dim cmd As OracleCommand 'Dim row As Integer 'List(Of OracleParameter) Try Using conexion() conexion.Open() cmd = New OracleCommand(spName, conexion) cmd = conexion.CreateCommand() If Not parameters Is Nothing Then cmd.CommandText = spName cmd.CommandType = System.Data.CommandType.StoredProcedure For Each p In parameters cmd.Parameters.Add(p) Next End If cmd.Connection.Open() If cmd.ExecuteNonQuery() Then Return 1 Else Return 0 End If End Using Catch ex As Exception Throw New ArgumentException("No se logro ejecutar la consulta en la DataBase " + ex.Message.ToString) End Try End Function
|
|
|
|
|
|
|