Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di cms9651
    Registrato dal
    Mar 2010
    Messaggi
    107

    [C# NET] Mancato funzionamento Update e Cancel

    Ciao a tutti, spero in un vostro aiuto.

    Perchè questa pagina net pur non restituendo errore, non aggiorna e cancella i record?
    Il db è mysql.

    Cosa sbaglio?
    Grazie
    codice:
    <%@ Page Language="C#" AutoEventWireup="true" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.Odbc" %>
    <%@ Import Namespace="System.Configuration" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
     <title>Report</title>
     <style type="text/css" media="all"> 
            @import "forms.css";
    </style>
    
    <script runat="server">
        public void Page_Load(Object sender, EventArgs e)
        {
            OdbcConnection myConnectionString = new
     OdbcConnection(
    ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString);
            myConnectionString.Open();
    
            myConnectionString.Dispose();
            myConnectionString.Close();
           
        }
    
    </script>
    
    </head>
    <body>
    
    <form id="form1" runat="server">
    <div>
    
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnMySQL %>"
        ProviderName="<%$ ConnectionStrings:ConnMySQL.ProviderName %>"
        SelectCommand="SELECT * FROM tbl_copy 
                       ORDER BY myDate DESC"
        DeleteCommand="DELETE FROM tbl_copy 
                       WHERE ID=?"
        UpdateCommand="UPDATE tbl_copy 
                       SET myArea=? 
                       WHERE ID=?"
        DataSourceMode="DataSet" 
        OldValuesParameterFormatString="{0}">
        <UpdateParameters>
            <asp:Parameter Name="ID" Type="Int32" Direction="Input" />
            <asp:Parameter Name="myArea" Type="String" Direction="Input" />
            <asp:Parameter Name="myUnity" Type="String" Direction="Input" />
        </UpdateParameters>
        <DeleteParameters>
        <asp:Parameter Name="ID" Type="Int32" Direction="Input" />
        </DeleteParameters>
    </asp:SqlDataSource>
    
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnMySQL %>"
        ProviderName="<%$ ConnectionStrings:ConnMySQL.ProviderName %>"
        SelectCommand="SELECT myArea FROM tbl_copy 
                       GROUP BY myArea ORDER BY myArea ASC">
    </asp:SqlDataSource>
    
    
    <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnMySQL %>"
        ProviderName="<%$ ConnectionStrings:ConnMySQL.ProviderName %>"
        SelectCommand="SELECT myUnity FROM tbl_copy
                       GROUP BY myUnity ORDER BY myUnity ASC">
    </asp:SqlDataSource>
    
    <asp:SqlDataSource ID="SqlDataSource4" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnMySQL %>"
        ProviderName="<%$ ConnectionStrings:ConnMySQL.ProviderName %>"
        SelectCommand="SELECT tips FROM tbl_tips
                       ORDER BY tips ASC">
    </asp:SqlDataSource>
    
    <asp:SqlDataSource ID="SqlDataSource5" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnMySQL %>"
        ProviderName="<%$ ConnectionStrings:ConnMySQL.ProviderName %>"
        SelectCommand="SELECT pers FROM tbl_pers
                       ORDER BY pers ASC">
    </asp:SqlDataSource>
    
    <asp:SqlDataSource ID="SqlDataSource6" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnMySQL %>"
        ProviderName="<%$ ConnectionStrings:ConnMySQL.ProviderName %>"
        SelectCommand="SELECT Prov FROM tbl_Prov
                       ORDER BY Prov ASC">
    </asp:SqlDataSource>
    
    
    <asp:GridView id="EditGrid" DataSourceID="SqlDataSource1" Runat="Server"
      AutoGenerateColumns="False"
      DataKeyNames="ID"
      AutoGenerateEditButton="False"
      AllowPaging="True"
      AllowSorting="True" 
      PageSize="10"
      CellPadding="3"
      CssClass="first"
      HeaderStyle-Font-Size="10pt"
      HeaderStyle-BackColor="#707070"
      HeaderStyle-ForeColor="#FFFFFF"
      RowStyle-Font-Size="10pt"
      RowStyle-VerticalAlign="Top"
      EditRowStyle-BackColor="Yellow">
    
    <SelectedRowStyle CssClass="first" ForeColor="Red" BackColor="Yellow" Font-Bold="true" />
      
    <Columns>
      
    <asp:TemplateField HeaderText=""> 
        <ItemTemplate>
          <asp:ImageButton ID="ImageButton1" CommandName="Edit" Runat="Server"
          ImageUrl="modify_icon.gif" 
          OnClientClick="return confirm('Confirm?.');" />
        </ItemTemplate>
        <EditItemTemplate>
          <asp:ImageButton ID="ImageButton2" CommandName="Update" Runat="Server"
          ImageUrl="update_icon.gif"
          OnClientClick="return confirm('Confirm?.');" /> 
          <asp:ImageButton ID="ImageButton3" CommandName="Cancel" Runat="Server"
          ImageUrl="cancel_icon.gif"
          OnClientClick="return confirm('Confirm?.');" />
        </EditItemTemplate>
      </asp:TemplateField>
    
      <asp:BoundField ReadOnly="True"
        HeaderText="ID"
        DataField="ID" SortExpression="ID"/>
    
      <asp:TemplateField HeaderText="myDates">
        <ItemTemplate>
          <asp:Label ID="Label1" Text='<%# Eval("myDates") %>' Runat="Server"/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox id="EditmyDates" Runat="Server"
            DataSourceID="SqlDataSource1"
            DataTextField="myDates" 
            DataValueField="myDates"
            Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField>
      
      <asp:TemplateField HeaderText="myArea">
        <ItemTemplate>
          <asp:Label ID="Label2" Text='<%# Eval("myArea") %>' Runat="Server"/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:DropDownList id="EditmyArea" Runat="Server"
            DataSourceID="SqlDataSource2"
            DataTextField="myArea" 
            DataValueField="myArea" 
            SelectedValue='<%# Bind("myArea") %>'
            Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField>
    
    
      <asp:TemplateField HeaderText="Unità">
        <ItemTemplate>
          <asp:Label ID="Label3" Text='<%# Eval("myUnity") %>' Runat="Server"/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:DropDownList id="EditmyUnity" Runat="Server"
            DataSourceID="SqlDataSource3"
            DataTextField="myUnity" 
            DataValueField="myUnity" 
            SelectedValue='<%# Bind("myUnity") %>'
            Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField> 
    
        <asp:TemplateField HeaderText="tips">
        <ItemTemplate>
          <asp:Label ID="Label4" Text='<%# Eval("tips") %>' Runat="Server"/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:DropDownList id="Edittips" Runat="Server"
            DataSourceID="SqlDataSource4"
            DataTextField="tips" 
            DataValueField="tips" 
            SelectedValue='<%# Bind("tips") %>'
            Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField> 
      
    
      <asp:TemplateField 
        HeaderText="Description">
        <ItemTemplate>
          <asp:Panel ID="Panel1" Width="150px" Height="30px" Runat="Server" 
          ScrollBars="Vertical">
            <asp:Label ID="Label5" Text='<%# Eval("Description") %>' Runat="Server"/>
          </asp:Panel>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox id="EditDescription" Runat="Server"
            Text='<%# Bind("Description") %>'
            TextMode="MultiLine" Rows="3" Width="150px" 
            Font-Name="Arial" Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField>
    
    
        <asp:TemplateField HeaderText="Pers">
        <ItemTemplate>
          <asp:Label ID="Label6" Text='<%# Eval("pers") %>' Runat="Server"/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:DropDownList id="EditPers" Runat="Server"
            DataSourceID="SqlDataSource5"
            DataTextField="pers" 
            DataValueField="pers" 
            SelectedValue='<%# Bind("pers") %>'
            Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField> 
    
    
      <asp:TemplateField 
        HeaderText="din">
        <ItemTemplate>
          <asp:Panel ID="Panel2" Width="150px" Height="30px" Runat="Server" 
          ScrollBars="Vertical">
            <asp:Label ID="Label7" Text='<%# Eval("din") %>' Runat="Server"/>
          </asp:Panel>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox id="EditDin" Runat="Server"
            Text='<%# Bind("din") %>'
            TextMode="MultiLine" Rows="3" Width="150px" 
            Font-Name="Arial" Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField>
    
      <asp:TemplateField 
        HeaderText="notes">
        <ItemTemplate>
          <asp:Panel ID="Panel3" Width="150px" Height="30px" Runat="Server" 
          ScrollBars="Vertical">
            <asp:Label ID="Label8" Text='<%# Eval("notes") %>' Runat="Server"/>
          </asp:Panel>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox id="EditNotes" Runat="Server"
            Text='<%# Bind("notes") %>'
            TextMode="MultiLine" Rows="3" Width="150px" 
            Font-Name="Arial" Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField>
    
    
        <asp:TemplateField HeaderText="Provv">
        <ItemTemplate>
          <asp:Label ID="Label9" Text='<%# Eval("Provv") %>' Runat="Server"/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:DropDownList id="EditProvv" Runat="Server"
            DataSourceID="SqlDataSource6"
            DataTextField="Provv" 
            DataValueField="Provv" 
            SelectedValue='<%# Bind("Provv") %>'
            Font-Size="8pt"/>
        </EditItemTemplate>
      </asp:TemplateField> 
    
    
      </Columns>
    
    
    <PagerSettings Position="TopAndBottom" FirstPageText="First page"
          LastPageText=""Last page"" Mode="NextPreviousFirstLast" />
    <PagerSettings />
    
    </asp:GridView>
    </div>
    </form>
    
    </body>
    </html>

  2. #2
    premesso che non ho provato la tua pagina (non potrei nemmeno)
    premesso che il close andrebbe prima del dispose ;-)

    il codice dentro il page_load non ti server proprio a nulla, toglilo

  3. #3
    Utente di HTML.it L'avatar di cms9651
    Registrato dal
    Mar 2010
    Messaggi
    107
    Grazie per i suggerimenti va molto meglio... adesso funzionano sia update che cancel.

    Però e non capisco perchè non mi aggiorna la data di un record esistente quando ne voglio inserire una nuova tramite il calendario popUp.

    Spero ancora in aiuto costruttivo.

    Grazie

    codice:
    <script runat="server">
    public void Page_Load (Object sender, EventArgs e)
    {
    OdbcConnection myConnectionString = 
    new OdbcConnection(
    ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString);
    myConnectionString.Open();
    
    myConnectionString.Close();
    myConnectionString.Dispose(); 
    }
    
    protected void calDate_SelectionChanged(object sender, EventArgs e)
    {
    
    TextBox  EditmyDates  = (TextBox)GridView1.Rows[GridView1.EditIndex].FindControl(" EditmyDates");
    
    }
    
    </script>
    
    <script type="text/javascript">
    function popupCalendar() {
    var dateField = document.getElementById('dateField');
    if (dateField.style.display == 'none')
    dateField.style.display = 'block';
    else
    dateField.style.display = 'none';
    }
    </script>
    
    <form id="form1" runat="server">
    <div id="dateField" style="display:none;">
    <asp:Calendar id="calDate" OnSelectionChanged="calDate_SelectionChanged" Runat="server" />
    </div>
    <div>
    
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnMySQL %>"
    ProviderName="<%$ ConnectionStrings:ConnMySQL.ProviderName %>"
    SelectCommand="SELECT myDates FROM tbl_copy 
    ORDER BY myDates DESC"
    UpdateCommand="UPDATE tbl_copy 
    SET myDates=? WHERE ID=?">
    <UpdateParameters>
    <asp:Parameter Name="ID" Type="Int32" Direction="Input" />
    <asp:Parameter Name="myDates" Type="DateTime" Direction="Input" />
    </UpdateParameters>
    </asp:SqlDataSource>
    
    ........
    
    
    <asp:TemplateField HeaderText="myDates" SortExpression="myDates">
    <ItemTemplate>
    <asp:Label ID="Label1" Text='<%# Bind("myDates", "{0:dd/MM/yyyy}") %>' Runat="Server"/>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="EditmyDates" Runat="Server"
    DataSourceID="SqlDataSource1"
    DataTextField="myDates" 
    DataValueField="myDates"
    Text='<%# Bind("myDates","{0:dd/MM/yyyy}") %>'
    Font-Size="8pt" Width="70" />
    [img]/images/CALEN.GIF[/img]
    </EditItemTemplate>
    </asp:TemplateField>
    
    ...
    
    </div>
    </form>

  4. #4
    dunque:
    1 - vedo che hai lasciato il codice nel Page_Load. il motivo?

    2 - DataTextField="myDates": DataTextField non mi sembra una proprietà di textbox, e comunque fai già il bind nella proprietà text.

    3 - Anche se sei in edit mode della riga della griglia, chi effettua il postback è il calendario, e usi l'evento per cambiare il valore alla textbox e questo vanifica il tutto

    L'unico modo per salvare il dato è fare il postback dal tasto salva della riga della griglia.
    quindi il valore nel textbox lo devi mettere da javascript se il tuo controllo calendario te lo permette. altrimenti cambia controllo

  5. #5
    Utente di HTML.it L'avatar di cms9651
    Registrato dal
    Mar 2010
    Messaggi
    107
    Originariamente inviato da Gluck74
    dunque:
    1 - vedo che hai lasciato il codice nel Page_Load. il motivo?
    Solo una distrazione adesso è eliminato.

    2 - DataTextField="myDates": DataTextField non mi sembra una proprietà di textbox, e comunque fai già il bind nella proprietà text.

    3 - Anche se sei in edit mode della riga della griglia, chi effettua il postback è il calendario, e usi l'evento per cambiare il valore alla textbox e questo vanifica il tutto

    L'unico modo per salvare il dato è fare il postback dal tasto salva della riga della griglia.
    quindi il valore nel textbox lo devi mettere da javascript se il tuo controllo calendario te lo permette. altrimenti cambia controllo
    E' risolto così:
    codice:
    protected void calDate_SelectionChanged(object sender, EventArgs e)
    {
        TextBox EditmyDates = (TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("EditmyDates");
        EditmyDates.Text = calDate.SelectedDate.ToString("d");
    }
    
    <script type="text/javascript">
    function popupCalendar() {
    var dateField = document.getElementById('dateField');
    if (dateField.style.display == 'none')
    dateField.style.display = 'block';
    else
    dateField.style.display = 'none';
    }
    </script>
    
    <form id="form1" runat="server">
    <div id="dateField" style="display:none;">
    <asp:Calendar id="calDate" onSelectionChanged="calDate_SelectionChanged" Runat="server" />
    </div>
    <div>
    ........
    
    
    <asp:TemplateField HeaderText="myDates" SortExpression="myDates">
    <ItemTemplate>
    <asp:Label ID="Label1" Text='<%# Bind("myDates", "{0:dd/MM/yyyy}") %>' Runat="Server"/>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="EditmyDates" Runat="Server"
    DataSourceID="SqlDataSource1"
    DataTextField="myDates" 
    DataValueField="myDates"
    Text='<%# Bind("myDates","{0:dd/MM/yyyy}") %>'
    Font-Size="8pt" Width="70" />
    [img]/images/CALEN.GIF[/img]
    </EditItemTemplate>
    </asp:TemplateField>
    
    ...

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.