Salve
Scusate il titolo poco originale però essendo l'argomento un pò lungo, e soprattutto molto confuso nella mia testa, non sono riuscito a sintetizzarlo.
La questione è questa:
Ho una pagina che effettua l'inserimento di una data in un campo textbox selezionata da un calendario.
Alla conferma della data, con l'apposito tasto, viene visualizzato nella parte bassa del video un datagrid con i dati presenti nel db per la data selezionata.
La cosa funziona soltanto che quando si sceglie una data dove non ci sono dati restat visualizzato il datagrid con i dati visualizzati in precedenza come posso fare per rimuoverlo?
Vi riporto il listato della pagina:
codice:<%@ Page Language="vb" Debug="true" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <%@ import Namespace="System.Web.UI.WebControls" %> <script runat="server"> Sub calendar1_SelectionChanged(ByVal Sender As Object, ByVal E As EventArgs) Dim strnumop As String dataop.Text = calendar1.SelectedDate.ToString() Message.Text = "La data scelta è stata aggiunta alla scheda di registrazione." & " " & "Scegliere il Cuas ed indicare l'importo accreditato" Dim strConn As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("/contocorrente/mdb-database/contocorrente.mdb") Dim objConn As New OleDbConnection(strConn) objConn.Open() Dim strSQL As String = "SELECT * FROM accrediti WHERE dataop =" & "'" & dataop.Text & "'" & "ORDER BY cuas ASC" Dim objCommand As New Data.OleDb.OleDbCommand(strSQL, objConn) Dim objDataReader As OleDbDataReader objDataReader = objCommand.ExecuteReader If Not objDataReader.HasRows() Then Dim strConn1 As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("/contocorrente/mdb-database/contocorrente.mdb") Dim objConn1 As New OleDbConnection(strConn1) objConn1.Open() Dim strSQL1 As String = "SELECT TOP 1 * FROM accrediti ORDER BY numop DESC" Dim objCommand1 As New OleDbCommand(strSQL1, objConn1) Dim objDataReader1 As OleDbDataReader objDataReader1 = objCommand1.ExecuteReader() Do While objDataReader1.Read strnumop = objDataReader1("numop") Loop objDataReader1.Close() strnumop = strnumop + 1 Dim aCookie As New HttpCookie("numeropera") aCookie.Value = strnumop aCookie.Expires = DateTime.Now.AddDays(1) Response.Cookies.Add(aCookie) lblsegnalazione.Text = "Non ci sono accrediti registrati per il giorno " & dataop.Text Else dgaccrediti.DataSource = objDataReader dgaccrediti.DataBind() lblsegnalazione.Text = "Elenco degli accrediti registrati per il giorno " & dataop.Text End If End Sub Sub EnterBtn_Click(ByVal Sender As Object, ByVal E As EventArgs) If (Page.IsValid) Then Dim numop_var As String = Server.HtmlEncode(Request.Cookies("numeropera").Value) Dim dataop_var As String = dataop.Text Dim cuas_var As String = cuas.SelectedItem.Value Dim impaccredito_var As String = impacc.Text Dim imppervenuto_var As String = "0,00" Dim datapervenuto_var As String = "00/00/0000 0.00.00" Dim impnoperv_var As String = "0,00" Dim strConnI As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("/contocorrente/mdb-database/contocorrente.mdb") Dim objConnI As New OleDbConnection(strConnI) Try Dim Inserisci As New OleDbCommand Inserisci.Connection = objConnI Inserisci.CommandText = "INSERT INTO accrediti ([numop],[dataop],[cuas], [impaccredito], [imppervenuto], [datapervenuto], [impnoperv] )values " & _ "(?,?,?,?,?,?,?)" Inserisci.Parameters.Add("?", OleDbType.VarChar).Value = numop_var Inserisci.Parameters.Add("?", OleDbType.VarChar).Value = dataop_var Inserisci.Parameters.Add("?", OleDbType.VarChar).Value = cuas_var Inserisci.Parameters.Add("?", OleDbType.VarChar).Value = impaccredito_var Inserisci.Parameters.Add("?", OleDbType.VarChar).Value = imppervenuto_var Inserisci.Parameters.Add("?", OleDbType.VarChar).Value = datapervenuto_var Inserisci.Parameters.Add("?", OleDbType.VarChar).Value = impnoperv_var objConnI.Open() Inserisci.ExecuteNonQuery() Finally objConnI.Close() End Try Message2.Text = "L'operazione è stata registrata correttamente" Else Message2.Text = "Si è verificato un errore durante la registrazione dell'accredito verificare l'elenco degli accrediti registrati" End If Dim strConn As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("/contocorrente/mdb-database/contocorrente.mdb") Dim objConn As New OleDbConnection(strConn) objConn.Open() Dim strSQL As String = "SELECT * FROM accrediti WHERE dataop =" & "'" & dataop.Text & "'" & "ORDER BY cuas ASC" Dim objCommand As New Data.OleDb.OleDbCommand(strSQL, objConn) Dim objDataReader As OleDbDataReader objDataReader = objCommand.ExecuteReader If Not objDataReader.HasRows() Then lblsegnalazione.Text = "Non ci sono accrediti registrati per il giorno " & dataop.Text Else dgaccrediti.DataSource = objDataReader dgaccrediti.DataBind() lblsegnalazione.Text = "Elenco degli accrediti registrati per il giorno " & dataop.Text End If End Sub </script> .... .... <asp:datagrid id="dgaccrediti" runat="server" Font-Size="Smaller" Font-Name="Verdana" BorderColor="gray" AutoGenerateColumns="false" HeaderStyle-Font-Bold="True" HeaderStyle-Font-Size="Small" HeaderStyle-ForeColor="White" HeaderStyle-BackColor="#0099CC"> <Columns> <asp:BoundColumn HeaderText="Data accredito" DataField="dataop" > <ItemStyle HorizontalAlign="Center" /> <HeaderStyle HorizontalAlign="Center" /> </asp:BoundColumn> <asp:BoundColumn HeaderText="Numero Operazione" DataField="numop" > <ItemStyle HorizontalAlign="Center" /> <HeaderStyle HorizontalAlign="Center" /> </asp:BoundColumn> <asp:BoundColumn HeaderText="Cuas" DataField="cuas" > <ItemStyle HorizontalAlign="Center" /> <HeaderStyle HorizontalAlign="Center" /> </asp:BoundColumn> <asp:BoundColumn HeaderText="Importo accreditato" DataField="impaccredito" > <ItemStyle HorizontalAlign="Right" /> <HeaderStyle HorizontalAlign="Center" /> </asp:BoundColumn> </Columns> <HeaderStyle BackColor="Black" Font-Bold="True" Font-Size="Small" ForeColor="White" /> </asp:datagrid>

Rispondi quotando