Come ottenere un valore nullo dal database in una casella di controllo GridView

StackOverflow https://stackoverflow.com/questions/720613

  •  23-08-2019
  •  | 
  •  

Domanda

ho una casella di controllo nella GridView.

 <asp:CheckBox  ID="chkStatus"
runat="server"
 Checked='<%#GetStatus(Eval("VaccinationCompletedStatus"))
 %>'/>

La funzione GetStatus è la seguente

  Public Function GetStatus(ByVal objStatus As Object) As Boolean
        If objStatus = True Then
            Return True
        ElseIf objStatus = False Then
            Return False
        Else
            Return False
        End If

    End Function

Ma se Stato è venuta come nullo dalla banca dati poi un errore è venuta come System.DBNull non può essere lanciato a object.If nulla è venuta dal database voglio ottenere casella selezionata falso.

È stato utile?

Soluzione

Si potrebbe verificare per DBNull prima:

If DBNull.Value.Equals(objStatus) Then
  Return False
Else
  Return objStatus
End If

Altri suggerimenti

Utilizzare la funzione TypeOf per verificare se il tipo di ingresso, se un valore booleano. Se non è solo return false.

If TypeOf objStatus Is Boolean Then
  Your code here
Else
  Return False
End If
<asp:TemplateField HeaderText="foo" >
    <ItemTemplate>    
        <asp:CheckBox  runat="server"
                    Checked='<%# Eval("foo").GetHashCode() == 1 %>'
                    Enabled="false"
                    Visible='<%# Eval("foo").GetType() == typeof(Boolean) %>' />
    </ItemTemplate>
</asp:TemplateField>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top