Home All Groups Group Topic Archive Search About
Author
18 Dec 2005 10:48 AM
Lorenzo
Hello There,
I have the following code that I need to optimize but I have somenthing that
doesn't work quite as expected:
I am doing the following:  I am coloring a calendar according to dates
present in the DB yellow if the dates are present, blank for available
dates.  I have some problems handling NULL values.  The following code works
well as long I don't encounter a NULL value because it doesn't do what I'd
like it to do.

It should check each and every row returned and evaluate if the row has a
record, if it does it should then render a yellow background color for my
calendar.  I have not included the code that make me select a value from a
DropDownList control and pass it to the query as a parameter.  Whan I select
an apartment that contains NULL values it DOES NOT color yellow any other
previous date that were present in the DB for that particular apartment I
simply have everything white.
Why is that, I don't get it.  I have this out of hands in the terms that
clearly exits my IF ... THEN statement at the first NULL value that it finds
without rendering the other dates.  I hope this explains my situation.



  Dim dr as OleDbDataReader
  Dim strSQL as String = "SELECT dteDataArrivo, dteDataPartenza FROM
tblPrenotazioni WHERE IDImmobile = " & lstApt.SelectedValue
  Dim cmd as New OleDbCommand(strSQL, objConnessione)

  objConnessione.Open()
  dr = cmd.ExecuteReader()


  Do While dr.Read()
    If Not IsDBNull(dr.Item(0)) and Not IsDbNull(dr.Item(1)) Then
        If (E.Day.Date >= dr.Item(0)) and (E.Day.Date < dr.Item(1)) Then
        e.cell.BackColor = System.Drawing.Color.Yellow
        End If
    Else
    e.cell.BackColor = System.Drawing.Color.White
    lblErrors.Text= "Empty Dates founds"
    End If
  Loop

  objConnessione.Close()



Thanks for your help
L.

Author
19 Dec 2005 4:11 AM
JDP@Work
I'm not sure if you can get the code as you have it to work.

You may wish to review the ItemDataBound event.

Do a google for ItemDataBound Event

--- snipit ( .... dots indicate lots of missing code.... )

    Private Sub refresh(ByVal whichStep As EstimatorStepType)
.....
        Select Case whichStep
            Case EstimatorStepType.Overview
                Me.td1.Text = reportDate
                Me.lblExtractDate1.Text = extractDate
                Me.formatPeriodNamesInDataGrids(ds)
                Me.dgOverview.DataSource = ds.Tables(1)
'Here's where the ItemDataBound is called....
---->>>    Me.dgOverview.DataBind()
            Case EstimatorStepType.Region
                Me.td2.Text = reportDate
.......' at databind we end up here, which in my case processes a number of
datagrids on one page
    Private Sub dg_ItemDataBound(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.DataGridItemEventArgs) Handles _
            dgOverview.ItemDataBound, dgRegionSummary.ItemDataBound,
dgDirectorSummary.ItemDataBound, dgMCSummary.ItemDataBound
......
        ElseIf e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
ListItemType.AlternatingItem Then
...... 'find a control
        Dim lbl_estAWRV As Label = e.Item.FindControl("lblEst_AWRV")
......' do something
......' find another control & change it's color, in this case any scheduled item
in the past
            If e.Item.DataItem("est_install_date") < Date.Now Then
                e.Item.Cells(3).ForeColor = System.Drawing.Color.Red
            End If
......

HTH

JeffP....

"Lorenzo"
<CuTT-!thISoFfonlyLeAveMyNamelorenzoWithNoNuMBErS98776@LeaveMyCountry!!!ITALIANl
Show quoteHide quote
odging.it.NOSPAM> wrote in message news:e9BCdC8AGHA.3928@tk2msftngp13.phx.gbl...
> Hello There,
> I have the following code that I need to optimize but I have somenthing that
> doesn't work quite as expected:
> I am doing the following:  I am coloring a calendar according to dates
> present in the DB yellow if the dates are present, blank for available
> dates.  I have some problems handling NULL values.  The following code works
> well as long I don't encounter a NULL value because it doesn't do what I'd
> like it to do.
>
> It should check each and every row returned and evaluate if the row has a
> record, if it does it should then render a yellow background color for my
> calendar.  I have not included the code that make me select a value from a
> DropDownList control and pass it to the query as a parameter.  Whan I select
> an apartment that contains NULL values it DOES NOT color yellow any other
> previous date that were present in the DB for that particular apartment I
> simply have everything white.
> Why is that, I don't get it.  I have this out of hands in the terms that
> clearly exits my IF ... THEN statement at the first NULL value that it finds
> without rendering the other dates.  I hope this explains my situation.
>
>
>
>   Dim dr as OleDbDataReader
>   Dim strSQL as String = "SELECT dteDataArrivo, dteDataPartenza FROM
> tblPrenotazioni WHERE IDImmobile = " & lstApt.SelectedValue
>   Dim cmd as New OleDbCommand(strSQL, objConnessione)
>
>   objConnessione.Open()
>   dr = cmd.ExecuteReader()
>
>
>   Do While dr.Read()
>     If Not IsDBNull(dr.Item(0)) and Not IsDbNull(dr.Item(1)) Then
>         If (E.Day.Date >= dr.Item(0)) and (E.Day.Date < dr.Item(1)) Then
>         e.cell.BackColor = System.Drawing.Color.Yellow
>         End If
>     Else
>     e.cell.BackColor = System.Drawing.Color.White
>     lblErrors.Text= "Empty Dates founds"
>     End If
>   Loop
>
>   objConnessione.Close()
>
>
>
> Thanks for your help
> L.
>
>
Author
20 Dec 2005 4:05 PM
Lorenzo
Hello, thanks for the reply

I am within a CalendarControl onDayRender event that I am sure will get
rendered the same way a DataGrid does but is there anything simpler?

If not I will just avoid inserting NULL values in the DB...

Sorry I am beginner...
L.


Show quoteHide quote
"JDP@Work" <JPGMTNoSpam@sbcglobal.net> ha scritto nel messaggio
news:eb$pnDFBGHA.2912@tk2msftngp13.phx.gbl...
> I'm not sure if you can get the code as you have it to work.
>
> You may wish to review the ItemDataBound event.
>
> Do a google for ItemDataBound Event
>
> --- snipit ( .... dots indicate lots of missing code.... )
>
>    Private Sub refresh(ByVal whichStep As EstimatorStepType)
> ....
>        Select Case whichStep
>            Case EstimatorStepType.Overview
>                Me.td1.Text = reportDate
>                Me.lblExtractDate1.Text = extractDate
>                Me.formatPeriodNamesInDataGrids(ds)
>                Me.dgOverview.DataSource = ds.Tables(1)
> 'Here's where the ItemDataBound is called....
> ---->>>    Me.dgOverview.DataBind()
>            Case EstimatorStepType.Region
>                Me.td2.Text = reportDate
> ......' at databind we end up here, which in my case processes a number of
> datagrids on one page
>    Private Sub dg_ItemDataBound(ByVal sender As Object, ByVal e As
> System.Web.UI.WebControls.DataGridItemEventArgs) Handles _
>            dgOverview.ItemDataBound, dgRegionSummary.ItemDataBound,
> dgDirectorSummary.ItemDataBound, dgMCSummary.ItemDataBound
> .....
>        ElseIf e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
> ListItemType.AlternatingItem Then
> ..... 'find a control
>        Dim lbl_estAWRV As Label = e.Item.FindControl("lblEst_AWRV")
> .....' do something
> .....' find another control & change it's color, in this case any
> scheduled item
> in the past
>            If e.Item.DataItem("est_install_date") < Date.Now Then
>                e.Item.Cells(3).ForeColor = System.Drawing.Color.Red
>            End If
> .....
>
> HTH
>
> JeffP....
>
> "Lorenzo"
> <CuTT-!thISoFfonlyLeAveMyNamelorenzoWithNoNuMBErS98776@LeaveMyCountry!!!ITALIANl
> odging.it.NOSPAM> wrote in message
> news:e9BCdC8AGHA.3928@tk2msftngp13.phx.gbl...
>> Hello There,
>> I have the following code that I need to optimize but I have somenthing
>> that
>> doesn't work quite as expected:
>> I am doing the following:  I am coloring a calendar according to dates
>> present in the DB yellow if the dates are present, blank for available
>> dates.  I have some problems handling NULL values.  The following code
>> works
>> well as long I don't encounter a NULL value because it doesn't do what
>> I'd
>> like it to do.
>>
>> It should check each and every row returned and evaluate if the row has a
>> record, if it does it should then render a yellow background color for my
>> calendar.  I have not included the code that make me select a value from
>> a
>> DropDownList control and pass it to the query as a parameter.  Whan I
>> select
>> an apartment that contains NULL values it DOES NOT color yellow any other
>> previous date that were present in the DB for that particular apartment I
>> simply have everything white.
>> Why is that, I don't get it.  I have this out of hands in the terms that
>> clearly exits my IF ... THEN statement at the first NULL value that it
>> finds
>> without rendering the other dates.  I hope this explains my situation.
>>
>>
>>
>>   Dim dr as OleDbDataReader
>>   Dim strSQL as String = "SELECT dteDataArrivo, dteDataPartenza FROM
>> tblPrenotazioni WHERE IDImmobile = " & lstApt.SelectedValue
>>   Dim cmd as New OleDbCommand(strSQL, objConnessione)
>>
>>   objConnessione.Open()
>>   dr = cmd.ExecuteReader()
>>
>>
>>   Do While dr.Read()
>>     If Not IsDBNull(dr.Item(0)) and Not IsDbNull(dr.Item(1)) Then
>>         If (E.Day.Date >= dr.Item(0)) and (E.Day.Date < dr.Item(1)) Then
>>         e.cell.BackColor = System.Drawing.Color.Yellow
>>         End If
>>     Else
>>     e.cell.BackColor = System.Drawing.Color.White
>>     lblErrors.Text= "Empty Dates founds"
>>     End If
>>   Loop
>>
>>   objConnessione.Close()
>>
>>
>>
>> Thanks for your help
>> L.
>>
>>
>
>
Author
20 Dec 2005 6:50 PM
JDP@Work
Lorenzo,

To that end of not inserting nulls, I usually have an sProc return my data,
there I can transform nulls into empty values.

For example if I have a process for sales, I would never have a sale dated,
1/1/1951, but that date can be used for logically setting my color.

Since any null date is returned as such I can test and set my properties.

HTH

JeffP....


"Lorenzo"
<CuTT-!thISoFfonlyLeAveMyNamelorenzoWithNoNuMBErS98776@LeaveMyCountry!!!ITALIANl
Show quoteHide quote
odging.it.NOSPAM> wrote in message news:uyItn8XBGHA.208@tk2msftngp13.phx.gbl...
> Hello, thanks for the reply
>
> I am within a CalendarControl onDayRender event that I am sure will get
> rendered the same way a DataGrid does but is there anything simpler?
>
> If not I will just avoid inserting NULL values in the DB...
>
> Sorry I am beginner...
> L.
>
>
> "JDP@Work" <JPGMTNoSpam@sbcglobal.net> ha scritto nel messaggio
> news:eb$pnDFBGHA.2912@tk2msftngp13.phx.gbl...
> > I'm not sure if you can get the code as you have it to work.
> >
> > You may wish to review the ItemDataBound event.
> >
> > Do a google for ItemDataBound Event
> >
> > --- snipit ( .... dots indicate lots of missing code.... )
> >
> >    Private Sub refresh(ByVal whichStep As EstimatorStepType)
> > ....
> >        Select Case whichStep
> >            Case EstimatorStepType.Overview
> >                Me.td1.Text = reportDate
> >                Me.lblExtractDate1.Text = extractDate
> >                Me.formatPeriodNamesInDataGrids(ds)
> >                Me.dgOverview.DataSource = ds.Tables(1)
> > 'Here's where the ItemDataBound is called....
> > ---->>>    Me.dgOverview.DataBind()
> >            Case EstimatorStepType.Region
> >                Me.td2.Text = reportDate
> > ......' at databind we end up here, which in my case processes a number of
> > datagrids on one page
> >    Private Sub dg_ItemDataBound(ByVal sender As Object, ByVal e As
> > System.Web.UI.WebControls.DataGridItemEventArgs) Handles _
> >            dgOverview.ItemDataBound, dgRegionSummary.ItemDataBound,
> > dgDirectorSummary.ItemDataBound, dgMCSummary.ItemDataBound
> > .....
> >        ElseIf e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
> > ListItemType.AlternatingItem Then
> > ..... 'find a control
> >        Dim lbl_estAWRV As Label = e.Item.FindControl("lblEst_AWRV")
> > .....' do something
> > .....' find another control & change it's color, in this case any
> > scheduled item
> > in the past
> >            If e.Item.DataItem("est_install_date") < Date.Now Then
> >                e.Item.Cells(3).ForeColor = System.Drawing.Color.Red
> >            End If
> > .....
> >
> > HTH
> >
> > JeffP....
> >
> > "Lorenzo"
> >
<CuTT-!thISoFfonlyLeAveMyNamelorenzoWithNoNuMBErS98776@LeaveMyCountry!!!ITALIANl
Show quoteHide quote
> > odging.it.NOSPAM> wrote in message
> > news:e9BCdC8AGHA.3928@tk2msftngp13.phx.gbl...
> >> Hello There,
> >> I have the following code that I need to optimize but I have somenthing
> >> that
> >> doesn't work quite as expected:
> >> I am doing the following:  I am coloring a calendar according to dates
> >> present in the DB yellow if the dates are present, blank for available
> >> dates.  I have some problems handling NULL values.  The following code
> >> works
> >> well as long I don't encounter a NULL value because it doesn't do what
> >> I'd
> >> like it to do.
> >>
> >> It should check each and every row returned and evaluate if the row has a
> >> record, if it does it should then render a yellow background color for my
> >> calendar.  I have not included the code that make me select a value from
> >> a
> >> DropDownList control and pass it to the query as a parameter.  Whan I
> >> select
> >> an apartment that contains NULL values it DOES NOT color yellow any other
> >> previous date that were present in the DB for that particular apartment I
> >> simply have everything white.
> >> Why is that, I don't get it.  I have this out of hands in the terms that
> >> clearly exits my IF ... THEN statement at the first NULL value that it
> >> finds
> >> without rendering the other dates.  I hope this explains my situation.
> >>
> >>
> >>
> >>   Dim dr as OleDbDataReader
> >>   Dim strSQL as String = "SELECT dteDataArrivo, dteDataPartenza FROM
> >> tblPrenotazioni WHERE IDImmobile = " & lstApt.SelectedValue
> >>   Dim cmd as New OleDbCommand(strSQL, objConnessione)
> >>
> >>   objConnessione.Open()
> >>   dr = cmd.ExecuteReader()
> >>
> >>
> >>   Do While dr.Read()
> >>     If Not IsDBNull(dr.Item(0)) and Not IsDbNull(dr.Item(1)) Then
> >>         If (E.Day.Date >= dr.Item(0)) and (E.Day.Date < dr.Item(1)) Then
> >>         e.cell.BackColor = System.Drawing.Color.Yellow
> >>         End If
> >>     Else
> >>     e.cell.BackColor = System.Drawing.Color.White
> >>     lblErrors.Text= "Empty Dates founds"
> >>     End If
> >>   Loop
> >>
> >>   objConnessione.Close()
> >>
> >>
> >>
> >> Thanks for your help
> >> L.
> >>
> >>
> >
> >
>
>