You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

list(of String)回发时无法填充,仅首次加载正常的问题求助

问题排查与解决方案

核心问题定位

你遇到的情况是:页面首次加载时列表填充正常,但加载已保存的「进行中」页面时,列表未填充导致控件状态错误。虽然填充代码不在If Not IsPostBack块内,但以下几个关键点可能是问题根源:

逐一排查修复

1. 检查查询参数的有效性

「进行中」页面加载时,txtAgreement.Text可能没有正确加载已保存的协议值,导致SQL查询无返回结果。

  • 调试验证:在查询前添加代码输出参数值
    Debug.WriteLine($"当前协议值:{txtAgreement.Text}")
    
  • 如果值为空或不正确,检查「进行中」页面的初始化逻辑,确保txtAgreement已从保存的数据源(如Session、数据库)中赋值。

2. 确认SQL查询是否返回数据

即使参数正确,也可能存在数据库数据不匹配的情况:

  • 添加代码验证查询结果行数:
    termDA.Fill(termDT)
    Debug.WriteLine($"查询返回行数:{termDT.Rows.Count}")
    
  • 如果行数为0,检查数据库中对应协议值的SKU和Agreement表是否存在关联数据,或协议值是否有大小写、空格等差异。

3. 每次填充前清空列表

避免旧数据残留干扰,在循环添加前清空列表:

listValues.Clear()
For i As Integer = 0 To termDT.Rows.Count - 1
    listValues.Add(termDT.Rows(i)("PartsTerm").ToString())
    listValues.Add(termDT.Rows(i)("LaborTerm").ToString())
Next

4. 调整代码执行顺序

如果「进行中」页面有加载已保存数据的逻辑(比如恢复用户之前填写的内容),确保填充列表和设置控件状态的代码在加载保存数据之后执行,防止控件状态被后续代码覆盖。

5. 捕获数据库操作异常

添加异常处理,排查是否存在连接或查询错误:

Try
    objCn.Open()
    ' 原查询与填充代码...
Catch ex As Exception
    Debug.WriteLine($"数据库错误:{ex.Message}")
Finally
    objCn.Close()
End Try

优化建议(可选)

使用Using语句自动管理数据库资源,避免连接泄漏:

Using objCn As New SqlConnection("你的数据库连接字符串")
    Using sqlTermSelect As New SqlCommand()
        sqlTermSelect.Connection = objCn
        sqlTermSelect.CommandText = "Select PartsTerm, LaborTerm FROM SKU INNER JOIN Agreement On SKU.SKU = Agreement.SKU WHERE Agreement = @Agreement"
        sqlTermSelect.Parameters.Add("@Agreement", SqlDbType.VarChar, 50).Value = txtAgreement.Text

        Dim termDA As New SqlDataAdapter(sqlTermSelect)
        Dim termDT As New DataTable()
        termDA.Fill(termDT)

        listValues.Clear()
        For i As Integer = 0 To termDT.Rows.Count - 1
            listValues.Add(termDT.Rows(i)("PartsTerm").ToString())
            listValues.Add(termDT.Rows(i)("LaborTerm").ToString())
        Next
    End Using
End Using

内容的提问来源于stack exchange,提问作者WhiteGlint

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:54:28