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

Android Studio中JDBC连接SQL Server 2019遇用户登录失败问题求助

解决Android Studio JDBC连接SQL Server 2019的"login failed for user"错误

先看最明显的核心问题:你的ConnectionClass里用户名参数被注释掉了!这直接导致连接数据库时传入的用户名为空,必然会触发登录失败的错误。赶紧取消user_name的注释,填入正确的SQL Server登录账号:

public class ConnectionClass {
    public static String ip= "***.***.*.*:1433";
    public static String user_name ="你的SQL Server登录用户名"; // 取消注释并填写正确值
    public static String password = "****";
    public static String database = "tests";
}

除了这个问题,还有几个可以进一步排查的方向:

  • 调整jTDS连接字符串参数
    SQL Server 2019默认可能要求加密连接,你可以在连接字符串里明确添加encrypt=false(测试阶段使用,生产环境建议配置合法加密);如果是命名实例,记得加上instance参数:

    connectionUrl = "jdbc:jtds:sqlserver://" + server + "/" + database + ";user=" + user + ";password=" + password + ";encrypt=false;";
    
  • 验证SQL账号的权限与可用性
    用SQL Server Management Studio(SSMS)直接用这个账号登录,确认:

    • 能正常连接到目标SQL Server实例
    • 拥有tests数据库的INSERT权限(可以通过给账号添加db_datawriter角色快速配置)
    • 账号没有被锁定或禁用
  • 再次确认网络连通性
    即使排查过防火墙,也可以在Android设备所在的网络环境下,用telnet命令测试端口是否可达:

    telnet ***.***.*.* 1433
    

    如果不通,检查SQL Server配置管理器里的TCP/IP协议是否绑定了正确的IP地址(不要只绑定127.0.0.1);如果是远程服务器,还要确认路由器的端口映射是否正确配置。

  • 优化异常反馈,方便排查
    你的AsyncTask里捕获了异常,但没有在UI层展示错误详情,建议修改onPostExecute方法,把错误信息直观显示出来:

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        // 清空输入框
        name.setText("");
        email.setText("");
        password.setText("");
        confirmPassword.setText("");
        // 显示结果状态
        if (!isSuccess) {
            status.setText("注册失败: " + z);
        } else {
            status.setText("注册成功");
        }
    }
    

    这样能更清晰看到具体的错误细节,帮助你进一步定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 10:37:42