Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: Non cancella il record

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687

    Non cancella il record

    Ciao a tutti.
    Sto tentando di capire qualche cosa di .net

    ho questo script:

    <%@ Page Language="VB"%>
    <%@ Import Namespace="System.Data"%>
    <%@ Import Namespace="System.Data.OleDb"%>

    <script runat="server">
    sub Page_Load(obj as object, e as EventArgs)
    dim myConnection as new OleDbConnection ("Provider=Microsoft.jet.OLEDB.4.0;Data Source="&Request.ServerVariables("APPL_PHYSICAL_PA TH")&"\data\banking.mdb")
    dim myCommand as new OleDbDataAdapter ("select * from tblUsers", myConnection)
    dim ds as DataSet = new DataSet()
    myCommand.Fill(ds, "tblUsers")

    'scegli un tipo di visualizzazione ed associalo al controllo server
    MyDataGrid1.DataSource = ds.Tables("tblUsers").DefaultView
    DataBind()
    end sub

    sub datagrid_ItemCommand(obj as object, e as DataListCommandEventArgs)
    MyDataGrid1.SelectedIndex = e.Item.ItemIndex
    MyDataGrid1.DataBind()
    end sub

    </script>

    <html>
    <body>
    <form runat="server">
    <asp:datagrid ID="MyDataGrid1" runat="server" BorderColor="black" GridLines="Vertical" CellPadding="4" CellSpacing="0" Width="450" Font-Names="Arial" Font-Size="8pt" ShowFooter="true" HeaderStyle-BackColor="#CCCC99" FooterStyle-BackColor="#cccc99" ItemStyle-BackColor="#ffffff" AlternatingItemStyle-BackColor="#cccccc" AutoGenerateColumns="false">
    <columns>
    <asp:templatecolumn HeaderText="Name">
    <itemtemplate>
    <asp:label ID="Name" runat="server" Text='<%# Container.DataItem("FirstName")&""& Container.DataItem("LastName")%>'/>
    </itemtemplate>
    </asp:templatecolumn>
    <asp:boundcolumn HeaderText="Address" DataField="Address"/>
    <asp:boundcolumn HeaderText="City" DataField="City"/>
    <asp:boundcolumn HeaderText="State" DataField="State"/>
    <asp:boundcolumn HeaderText="Zip" DataField="Zip"/>
    <asp:hyperlinkColumn HeaderText ="Edit" text="edit" NavigateUrl ="edit.aspx"/>
    <asp:buttoncolumn HeaderText="Delete?" Text="Elimina" ButtonType="PushButton" CommandName="delete"/>
    </columns>
    </asp:datagrid>
    </form>
    </body>
    </html>


    Perchè non mi cancella il record???

    Non succede niente. Sto lobro Apogeo non mi sembra il massimo....

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    Non c'è la sub per cancellare vero?

    Nel capitolo dopo ho trovato

    sub Page_Load(obj as Object, e as eventargs)
    'Imposta la connessione
    dim objConn as new OleDbConnection ("Provider=Microsoft.jet.OLEDB.4.0;Data Source="&Request.ServerVariables("APPL_PHYSICAL_PA TH")&"test.net\data\banking.mdb")


    objConn.Open


    dim I as integer
    dim strSQL as string = "DELETE FROM tblUsers WHERE UserId=5"
    dim objCmd as New OleDbCommand(strSQL, objConn)
    I = objCmd.ExecuteNonQuery()
    objConn.Close
    end sub


    per cancellare.

    Ma come posso metterlo dentro lo script di prima??

    Cioè soprattutto passargli l'ID

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    il primo ke hai è x visualizzare i contenuti del db
    il secondo è x cancellare

    l'id puoi passarlo alla pagina come QueryString
    pagina.aspx?cancID=numero

    e poi
    dim strSQL as string = "DELETE FROM tblUsers WHERE UserId=" & Request.QueryString("cancID")

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    non mi sono spiegato.

    il mio problema è recuperare l'id

    <asp:buttoncolumn HeaderText="Delete?" Text="Elimina" ButtonType="PushButton" NavigateUrl ="cancella.aspx?<%# Container.DataItem("id")%>"/>

    se nel primo inserisco questo?

    però io volevo utilizzare le subroutine, tutto nella stessa pagina. io uo asp e mi viene difficile capire sto trespolo di net.

  5. #5
    Usa una HyperLinkColumn

    codice:
    <asp:HyperLinkColumn Text="Elimina Retta" Target="_self" DataNavigateUrlField="idretta" DataNavigateUrlFormatString="edit_retta.aspx?idretta={0}&amp;cancella=ok" HeaderText="Elimina" NavigateUrl="edit_retta.aspx"></asp:HyperLinkColumn>
    e poi grazie ad una analisi della querystring

    esegui questo codice

    codice:
    Sub Cancella()
        	'# Connessione al database
        	Dim connectionstring As String = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=" & Server.MapPath("villa.mdb")
        	Dim conndel As New OleDbConnection(connectionstring)
            Dim sqldel As String = "delete from patologie where idretta=" & Request.QueryString("idretta")
        	Dim DelCmd As New OleDbCommand(sqldel, conndel)
        	
        	'# Provo ad eseguire l'eliminazione della retta
        	Try
        		conndel.open()
        		DelCmd.ExecuteNonquery()
        		conndel.close()
        		Catch exc As exception
                Response.Write(sqldel)
            End Try
    
            '# refresho il datagrid e mostro i dati a video
            Dim sql2 As String = "select * from patologie"
            Dim dbname2 As String = "villa.mdb"
    
            Dim aM As New aspnet()
    
            Dim ricerca = aM.search(sql2, dbname2)
            Dim storage2 As DataSet = aM.report
    
            DataGrid1.DataSource = storage2
            DataGrid1.DataBind()
    sempre meglio di quel obsloeto asp3

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    non offenere il mio amato asp3 (scherzo!!!)

    proverò il codice che hai postato quanto prima, grazie molte.

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    Cosa vuol dire Dim aM As New aspnet()

    mi dice
    Errore di compilazione
    Descrizione: Errore durante la compilazione di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.

    Messaggio di errore del compilatore: BC30002: Tipo 'aspnet' non definito.

    Errore nel codice sorgente:



    Riga 27: Dim dbname2 As String = "banking.mdb"
    Riga 28:
    Riga 29: Dim aM As New aspnet()
    Riga 30:
    Riga 31: Dim ricerca = aM.search(sql2, dbname2)

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    aspnet è una dll ke usa jc_ .. aspetta quando arriva ke ti darà l'indirizzo dove scaricarla (alemno credo :gren: )

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    687
    No allora non mi interessa perchè se ho uno spazio in hosting presso un provider non posso mica installare nuove dll. o no?

    Sono quasi riuscito a far funzionare questo script che si trova sul libro.

    Aggiorna i record, inserisce, ma non cancella.

    Quando clicco viene "Errore aggiornamento database" che è la frase inserita in fondo per gestire gli errori.

    lo posto, se qualche anima pia ha tempo di dare un'occhiata all'istruzione DELETE.

    <%@ Page Language="VB" debug="true"%>
    <%@ Import Namespace="System.Data"%>
    <%@ Import Namespace="System.Data.OleDb"%>

    <script runat="server">

    dim Conn as new OleDbConnection ("Provider=Microsoft.jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\test.net\data\banking.md b")

    sub Page_Load(obj as Object, e as EventArgs)
    if not Page.IsPostBack then
    FillDataGrid()
    end if
    end sub

    sub submit(obj as object, e as eventargs)
    dim i, j as integer
    dim params(7) as String
    dim strText as String
    dim blnGo as boolean= true

    j = 0

    for i = 0 to AddPanel.Controls.Count -1
    if AddPanel.controls(i).GetType Is _
    GetType(TextBox) then
    strText = Ctype(AddPanel.Controls(i), _
    TextBox).Text
    if strText <> " " then
    params(j) = strText
    else
    blnGo = False
    lblMessage.Text = lblMessage.Text & _
    "You forgot to enter a value for "& _
    AddPanel.Controls(i).ID & "

    "
    lblMessage.Style("ForeColor") = "Red"
    end if
    j = j + 1
    end if
    next

    if not blnGo then
    exit sub
    end if

    dim strSQL as string = "INSERT INTO tblUsers " & _
    "(FirstName, LastName, Address, City, State, Zip, Phone) VALUES (" & _
    "'"&params(0)&"',"& _
    "'"&params(1)&"',"& _
    "'"&params(2)&"',"& _
    "'"&params(3)&"',"& _
    "'"&params(4)&"',"& _
    "'"&params(5)&"',"& _
    "'"&params(6)&"') "

    ExecuteStatement(strSQL)

    FillDataGrid()
    end sub

    sub dgData_Edit(obj as object, e as DataGridCommandEventArgs)
    FillDataGrid(e.Item.ItemIndex)
    end sub

    sub dgData_Delete(obj as object, e as DataGridCommandEventArgs)
    dim strSQL as string="Delete * from tblUsers" & _
    "WHERE UserID=" & e.Item.ItemIndex + 1

    ExecuteStatement(strSQL)

    FillDataGrid()
    end sub

    sub dgData_Update(obj as object, e as DataGridCommandEventArgs)
    if UpdateDataStore(e) then
    FillDataGrid(-1)
    end if
    end sub
    sub dgData_Cancel(obj as object, e as DataGridCommandEventArgs)
    FillDataGrid(-1)
    end sub

    sub dgData_PageIndexChanged(obj as Object, e as DataGridPageChangedEventArgs)
    dgData.DataBind()
    end sub

    function UpdateDataStore(e as DataGridCommandEventArgs) as boolean

    dim i,j as integer
    dim params(7) as string
    dim strText as string
    dim blnGo as boolean = True

    j=0
    for i=1 to e.Item.Cells.Count -3
    strText = Ctype(e.Item.Cells(i).Controls(0),TextBox).Text
    if strText <> "" then
    params(j) = strText
    j=j+1
    else
    blnGo=false
    lblMessage.Text=lblMessage.Text &"You forgot to enter a value

    "
    end if
    next

    if not blnGo then
    return false
    exit function
    end if

    dim strSQL as string = "UPDATE tblUsers SET " & _
    "FirstName = '"&params(0)&"',"& _
    "LastName = '"&params(1)&"',"& _
    "Address = '"&params(2)&"',"& _
    "City = '"&params(3)&"',"& _
    "State = '"&params(4)&"',"& _
    "Zip = '"&params(5)&"',"& _
    "Phone = '"&params(6)&"'"& _
    "WHERE UserID="&Ctype(e.Item.Cells(0).Controls(1), Label).Text

    ExecuteStatement(strSQL)
    return blnGO
    end function

    sub FillDataGrid(Optional EditIndex as Integer = -1)
    dim objCmd as new OleDbCommand _
    ("select * from tblUsers order by LastName ASC", Conn)
    dim objReader as OleDbDataReader

    try

    objCmd.Connection.Open()
    objReader = objCmd.ExecuteReader()
    catch ex as Exception
    lblMessage.Text="Error retrieving from the database"
    end try

    dgData.DataSource = objReader
    if not EditIndex.Equals(Nothing) then
    dgData.EditItemIndex = EditIndex
    end if

    dgData.DataBind()

    objReader.Close()

    objCmd.Connection.Close()

    end sub

    function ExecuteStatement(strSQL)
    dim objCmd as new OleDbCommand(strSQL, Conn)

    try

    objCmd.Connection.Open()
    objCmd.ExecuteNonQuery()
    catch ex as Exception
    lblMessage.Text="Errore di aggiornamento del database"

    end try

    objCmd.Connection.Close()
    end function
    </script>
    <html>
    <body>
    <asp:label ID="lblMessage" runat="server"/>
    <form runat="server">
    <asp:datagrid id="dgData" runat="server" BorderColor="black" GridLines="Vertical" CellPadding="4" CellSpacing="0" Width="550" Font-Names="Arial" Font-Size="8pt" ShowFooter="true" HeaderStyle-BackColor="#CCCC99" FooterStyle-BackColor="#cccc99" ItemStyle-BackColor="#ffffff" AlternatingItemStyle-BackColor="#cccccc" AutoGenerateColumns="false" OnDeleteCommand="dgData_Delete" OnEditCommand="dgData_Edit" OnCancelCommand="dgData_Cancel" OnUpdateCommand="dgData_Update" OnPageIndexChanged="dgData_pageIndexChanged">
    <columns>
    <asp:templatecolumn HeaderText="id">
    <itemtemplate>
    <asp:label ID="name" runat="server" Text='<%# Container.DataItem("UserID")%>'/>
    </itemtemplate>
    </asp:templatecolumn>
    <asp:boundcolumn HeaderText="FirstName"
    DataField="FirstName"/>
    <asp:boundcolumn HeaderText="LastName"
    DataField="LastName"/>
    <asp:boundcolumn HeaderText="Address"
    DataField="Address"/>
    <asp:boundcolumn HeaderText="City"
    DataField="City"/>
    <asp:boundcolumn HeaderText="State"
    DataField="State"/>
    <asp:boundcolumn HeaderText="Zip"
    DataField="Zip"/>
    <asp:boundcolumn HeaderText="Phone"
    DataField="Phone"/>

    <asp:editcommandcolumn EditText="Edit" CancelText="Cancel" UpdateText="Update" HeaderText="Edit"/>
    <asp:buttoncolumn HeaderText="" Text="Delete" CommandName="delete"/>

    </columns>
    </asp:datagrid>

    <aspanel ID="AddPanel" runat="server">
    <table>
    <tr>
    <td width="100" valign="top">
    Nome e cognome:
    </td>
    <td width="300" valign="top">
    <asp:textbox ID="tbFName" runat="server"/>
    <asp:textbox ID="tbLName" runat="server"/>
    </td>
    </tr>
    <tr>
    <td valign="top">Indirizzo:</td>
    <td valign="top">
    <asp:textbox ID="tbAddress" runat="server"/>
    </td>
    </tr>
    <tr>
    <td valign="top">Città, stato, zip:</td>
    <td valign="top">
    <asp:textbox ID="tbCity" runat="server"/>
    <asp:textbox ID="tbState" runat="server" size=2/>
    <asp:textbox ID="tbZip" runat="server" size=5/>
    </td>
    </tr>
    <tr>
    <td valign="top">Telefono:</td>
    <td valign="top">
    <asp:textbox ID="tbPhone" runat="server" size=11/>

    </p>
    </td>
    </tr>
    <tr>
    <td colspan="2" valign="top" align="right">
    <asp:button ID="btSubmit" runat="server" Text="Add" OnClick="Submit"/>
    </td>
    </tr>
    </table>
    </aspanel>
    </form>
    </body>
    </html>

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    Originariamente inviato da nikasil
    No allora non mi interessa perchè se ho uno spazio in hosting presso un provider non posso mica installare nuove dll. o no?
    di solito, a meno ke nn ci sia scritto da qualke parte ..
    cmq se puoi basta mettarlo in tuosito.it/bin

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.