【问题标题】:Pass Eval Integer Into Function将 Eval 整数传递给函数
【发布时间】:2014-04-25 11:34:40
【问题描述】:

目的:传递一个值,即SQL DB中的一个整数并返回一个文本值

问题:要从 Eval 获取值到函数,我似乎必须将 .tostring 放入字符串而不是数字。如果我尝试使用以下 convert.toint32 ,则不会传递任何值。我最后尝试了 .tostring 。

检查:没有 Eval,我得到了网格中显示的数字,当使用没有转换的 .tostring 时,将数字作为字符串传递,然后在搜索中失败,因为我无法将字符串变成数字?!

我看过各种论坛讨论,尤其是Converting value of an Eval from int to string

代码:

.aspx

  <%# RiskIDToText(Convert.ToInt32(Eval("RiskID")))%>

.aspx.vb

Public Function RiskIDToText(ByVal vRiskIDString As Integer) As Integer

        Dim vString As String = ""

        Dim sConnString As String = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("SQL").ConnectionString
        Dim dsNames As SqlDataSource

        dsNames = New SqlDataSource
        dsNames.ConnectionString = sConnString
        Dim sSQL As String

        sSQL = "SELECT RiskCategories,RiskCatID FROM TblRisks_Categories WHERE RiskCatID =  '& vRiskIDString & '"
        dsNames.SelectCommand = sSQL

        For Each datarow As Data.DataRowView In dsNames.Select(DataSourceSelectArguments.Empty)

            vString = datarow("RiskCategories").ToString

        Next

        Return vString

    End Function

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    尝试像这样更改您的函数声明:

    Public Function RiskIDToText(ByVal vRiskIDString As Integer) As String
          dim vRiskIDStr= cstr(vRiskIDString)  ''use vRiskIDStr in db query.
    

    其余代码保持不变。

    【讨论】:

    • 如果我输入“作为整数”,则没有值出现,如果我输入“作为字符串”,我得到 - 在 For Each 行上,我得到“转换 varchar 值时转换失败'& vRiskIDString &'到数据类型 int。”
    • 更改了整数和字符串,然后它就可以工作了。不需要第二行代码。现在 vString 说它是错误的类型,因为它是一个字符串......:-S
    • 很高兴你做到了。问候
    【解决方案2】:

    .aspx

       <%# RiskIDToText((Eval("RiskID")))%>
    

    .aspx.vb

     Public Function RiskIDToText(ByVal vRiskIDString As String) As String
    
        Dim vString As String = ""
    
        Dim sConnString As String = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("SQL").ConnectionString
        Dim dsNames As SqlDataSource
    
        dsNames = New SqlDataSource
        dsNames.ConnectionString = sConnString
        Dim sSQL As String
    
        sSQL = "SELECT RiskCategories,RiskCatID FROM TblRisks_Categories WHERE RiskCatID =  '" & vRiskIDString & "' "
        dsNames.SelectCommand = sSQL
    
        For Each datarow As Data.DataRowView In dsNames.Select(DataSourceSelectArguments.Empty)
    
            vString = datarow("RiskCategories").ToString
    
        Next
    
        Return vString
    
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      相关资源
      最近更新 更多