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>