كيفية الحصول على قيمة فارغة من قاعدة البيانات إلى مربع اختيار في GridView
سؤال
لدي مربع اختيار في GridView.
<asp:CheckBox ID="chkStatus"
runat="server"
Checked='<%#GetStatus(Eval("VaccinationCompletedStatus"))
%>'/>
وظيفة GetStatus هي كما يلي
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
ولكن إذا كان الوضع قد سيأتي تماما من قاعدة البيانات، فسيأتي خطأ واحد حيث لا يمكن إلقاء خطأ system.dbnull إلى Object.If قادم من قاعدة البيانات التي أريد الحصول عليها خلاصة فحص خطأ.
المحلول
يمكنك التحقق من dbnull أولا:
If DBNull.Value.Equals(objStatus) Then
Return False
Else
Return objStatus
End If
نصائح أخرى
استخدم وظيفة TypeOf للتحقق مما إذا كان نوع الإدخال إذا كان المنطقي. إذا لم يكن مجرد إرجاع خطأ.
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>
لا تنتمي إلى StackOverflow