簡體   English   中英

從“ DBNull”類型到“ String”類型的轉換無效。 可點擊的數據

[英]Conversion from type 'DBNull' to type 'String' is not valid. clickable data

我是aspx編程的新手。 我面臨的問題是我提取的數據包含空值。 我的代碼:

<asp:TemplateField HeaderText="NCRE" ItemStyle-Width="150px" >
    <ItemTemplate>
        <asp:Hyperlink ID="Hyperlink1" runat="server"  Text='<%# Eval("formid") %>' NavigateUrl='<%# Eval("formid","~/sapphire/ncrr" + Mid(Eval("formid"), 4, 1) + ".aspx?formid={0}") %>' />
    </ItemTemplate>
</asp:TemplateField>

我的代碼后面:

Protected Function geturl(value As Object) As String
    Dim NCRE As String = Convert.ToString("formid")
    If Mid(NCRE, 4, 1) = 2 Then
        Return ("~/sapphire/ncrr2.aspx")
    Else
        Return ("~/sapphire/ncrr1.aspx")
    End If
End Function

為了幫助您從我鏈接的帖子中獲得正確的代碼:

將此部分復制到您的代碼文件中(以aspx.cs結尾):

Public Function ProcessMyDataItem(myValue As Object) As String
    If myValue Is Nothing OrElse myValue = DbNull.Value Then
        Return "(no value)"
    End If

    Return myValue.ToString()
End Function

在您的.aspx

<asp:TemplateField HeaderText="NCRE" ItemStyle-Width="150px" >
    <ItemTemplate>
        <asp:Hyperlink ID="Hyperlink1" runat="server"  Text='<%# ProcessMyDataItem(Eval("formid")) %>' NavigateUrl='<%# Eval("formid","~/sapphire/ncrr" + Mid(ProcessMyDataItem(Eval("formid")), 4, 1) + ".aspx?formid={0}") %>' />
    </ItemTemplate>
</asp:TemplateField>

您可以使用IIfIIf(IsDBNull(Eval("fieldName")) = True, *do what You want when record is empty*, *do what You want when record isn't empty) )。

有例子:

Text = '<%# IIf(IsDBNull(Eval("formid")) = True, "no data", Eval("formid))%>'

您可以將相同的代碼用於NavigateUrl

NavigateUrl = '<%# IIf(IsDBNull(Eval("formid")) = True, "#", Eval("formid","~/sapphire/ncrr" + Mid(Eval("formid"), 4, 1) + ".aspx?formid={0}"))'

然后,在您的函數geturl (后面的代碼)中,首先檢查是否為value ,例如# (什么都不做,或者只是返回空),否則執行代碼。

您只能添加一個空字符串來避免該錯誤:

昏暗的NCRE作為字符串= Convert.ToString(“ formid”)&“”

或者,為避免在第4個位置出現錯誤:

Dim NCRE As String = Convert.ToString(“ formid”)&“”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM