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

Asp.Net(VB.Net)下拉框联动时第二个下拉无值问题解决

修复方案

核心问题

第一个下拉框drp_dist未开启自动回发属性,选中选项后不会触发服务端的SelectedIndexChanged事件,导致加载医院列表的逻辑从未执行。

修复步骤

  1. 在.aspx页面对应drp_dist的控件声明中添加AutoPostBack="True"属性,示例:
    <asp:DropDownList ID="drp_dist" runat="server" AutoPostBack="True">
    </asp:DropDownList>
    
  2. 补全Catch异常捕获逻辑,避免异常被直接吞掉无法排查问题。你现有代码中所有Try-Catch的Catch块都是空的,数据库连接报错、字段名错误、查询无结果等问题都会被直接忽略,测试阶段可以先输出异常信息:
    Catch ex As Exception
        Response.Write($"执行错误:{ex.Message}")
        ' 上线后请改为写入本地日志,不要直接输出到前端
    End Try
    

可选优化建议

  • 现有BindHospital方法中的SQL语句采用字符串拼接方式,存在SQL注入风险,建议改为参数化查询:
    ' 替换原有的sqlCmd.CommandText赋值逻辑
    sqlCmd.CommandText = "SELECT * FROM [dbo].[Hospital] WHERE District = @District"
    sqlCmd.Parameters.AddWithValue("@District", dist)
    
  • Page_Load中声明的全局SqlConnection对象完全没有被使用,还存在连接打开后未释放的风险,建议直接删除该全局连接的相关声明代码,你现有方法中用Using块管理连接的方式更安全,无需额外维护全局连接。
  • 可以在drp_dist_SelectedIndexChanged事件开头加判断,当选中值为默认的0(即“Select District”选项)时,清空drp_hospital的选项,避免残留无效数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:09:02