• Lunes 18 de Noviembre de 2024, 10:46

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - paquitoTLD

Páginas: [1]
1
ASP / Problema Actualizar Bd Con Datagrid, Urge! Gracias
« en: Miércoles 16 de Agosto de 2006, 02:40 »
Hola, tengo un datagrid cuyo campo de referencia (DataKeyField) es un Nvarchar y coincide con la clave de la tabla de la base de datos que cargo.

Pues bien en el procedimiento de actualizar tengo problemas para recuperar el valor de dicho campo de referencia-clave. He probado varias expresiones:

cod_rec = DataGrid1.DataKeys(CInt(e.Item.ItemIndex))


cod_rec = (CType(e.Item.Cells(2).Controls(0), TextBox)).Text
El problema que tiene esta es que no se como obtener de una forma generica el número de columna donde se encuentra la clave

Cod_rec = (DataGrid1.DataKeys.Item(e.Item.ItemIndex))

Ahora bien, suponiendo que alguna de estas funcione, que por ejemplo la 2da sería correctisima, siempre que en las claves de la tabla aparece algún valor que no es un entero tengo un problema al actualizar y actualice el registro que actualice me dice por ejemplo el siguiente error, aunque este actualizando una tabla cuya clave sea un entero:

Error de conversión al convertir el valor nvarchar 'e' al tipo de datos int.

Incluso utilizando la segunda expresion que no convierte por ningun lado a integer, ¿Alguien sabe que puede pasar?

Esta es mi sentencia de actualización:

sqlSt = "UPDATE Recurso SET Descripcion=' " + descSt + "', Tipo='" + tipoSt + "' WHERE Cod_rec=" + DataGrid1.DataKeys(CInt(e.Item.ItemIndex))Abro la base de datos, ejecuto la sentencia, cierro la conexión y devuelvo el control al procedimiento principal con el valor de DataGrid1.EditItemIndex = -1           
Gracias!!

2
ASP / Capturar Expeciones Base Datos Usando Gridview??
« en: Domingo 13 de Agosto de 2006, 19:13 »
Hola, a ver os cuento mi problemilla que estoy con el proyecto fin de carrera y ando un poco desesperaillo. Estoy haciendo una aplicación Web que interactua con una base de datos en SQL. En una de las páginas a traves de un ViedGriew muestro los datos de una tabla y todo perfecto, incluso tengo un formulario que permite insertar y al instante se actualiza la página actualizando el ViedGriew.

El problema viene por ejemplo al borrar, puedo borrar algunas filas cuya clave no aparece referenciada en ninguna otras tablas, pero si quiero borrar una fila cuya clave aparece en otra tabla me aparece el siguiente error logicamente.

Instrucción DELETE en conflicto con la restricción REFERENCE "FK_Tarea Consume Recurso_Recurso". El conflicto ha aparecido en la base de datos "GP", tabla "dbo.Persona Desarrolla Tarea", column 'Cod_rec'.

Aquí está el código, al final está la parte del DELETE donde tengo los problemas, he tratado de capturar la excepcion (como hago al insertar pero nada, y es que claro el TRY y el CATCH al ser un formulario no me valen) pero no soy capaz, acabo de iniciarme en ASP y ni creando procedimientos he podido capturar la excepcion.

CODIGO INICIAL AL ACTUALIZARSE LA PAGINA

Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim miSqlConexion As SqlConnection
miSqlConexion = New SqlConnection("server=SOBREMESA;database=GP;Trusted_Connection=yes")

If Not (IsPostBack) Then
GridView1.DataBind()
End If
End Sub

FORMULARIO

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"

BackColor="Lavender" BorderColor="#0000C0" BorderStyle="None" BorderWidth="1px"

CellPadding="4" DataKeyNames="Cod_rec" DataSourceID="SqlDataSource1" PageSize="8">
<FooterStyle BackColor="#FFFF80" ForeColor="#003399" />

<Columns>

<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowDeleteButton="True" />
<asp:BoundField DataField="Cod_rec" HeaderText="Cod_rec" ReadOnly="True" SortExpression="Cod_rec" />
<asp:BoundField DataField="Descripcion" HeaderText="Descripcion" SortExpression="Descripcion" />
<asp:BoundField DataField="Tipo" HeaderText="Tipo" SortExpression="Tipo" />
<asp:BoundField DataField="Localizacion" HeaderText="Localizacion" SortExpression="Localizacion" />

</Columns>
</asp:GridView>

    

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:GPConnectionString %>"

SelectCommand="SELECT * FROM [Recurso]"
DeleteCommand="Delete From [Recurso] WHERE Cod_rec=@Cod_rec"
UpdateCommand="Update [Recurso] SET [Cod_rec]=@Cod_rec , [Descripcion]=@Desc , [Tipo]=@Tipo, [Localizacion]=@Local">

<DeleteParameters>
<asp:Parameter Name="Cod_rec" Type="String" >
</DeleteParameters>

</asp:SqlDataSource>

Bueno a ver si alguien me puede ayudar, MUCHAS GRACIAS!!!

Páginas: [1]