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

Android连接本地MS SQL报错求助(附代码示例)

排查Android连接本地MS SQL数据库的常见问题

我来帮你一步步排查Android连接本地MS SQL数据库时遇到的问题,咱们从代码到环境逐个核对:

1. 代码层面的核心修正

首先,你的代码缺少完整的连接字符串构建和异常处理逻辑,先补上正确的实现示例:

String ip = "192.168.1.100"; // 替换成你电脑的实际局域网IP,别用示例的999.999.9.9
String classs = "net.sourceforge.jtds.jdbc.Driver";
String db = "Mydbname";
String un = "username";
String password = "Password";
String instance = "SQLEXPRESS";
String z = "";

protected String doInBackground(String... params) {
    if(userid.trim().equals("")|| password.trim().equals(""))
        z = "Please enter User Id and Password";
    else {
        try {
            // 加载JDBC驱动
            Class.forName(classs);
            // 构建jtds标准连接字符串
            String connectionUrl = String.format(
                "jdbc:jtds:sqlserver://%s:1433/%s;instance=%s;user=%s;password=%s",
                ip, db, instance, un, password
            );
            // 尝试建立连接
            Connection conn = DriverManager.getConnection(connectionUrl);
            if (conn != null) {
                z = "Connection successful!";
                // 用完记得关闭连接,避免资源泄漏
                conn.close();
            }
        } catch (ClassNotFoundException e) {
            z = "驱动加载失败:" + e.getMessage();
            e.printStackTrace();
        } catch (SQLException e) {
            z = "SQL连接错误:" + e.getMessage();
            e.printStackTrace();
        } catch (Exception e) {
            z = "未知错误:" + e.getMessage();
            e.printStackTrace();
        }
    }
    return z;
}

代码里需要注意:

  • 必须替换ip为SQL Server所在电脑的实际局域网IP(可以在电脑上用ipconfig命令查看IPv4地址)
  • 连接字符串要包含端口、实例名等关键参数,jtds的格式是固定的,不能随意省略

2. 网络与SQL Server配置检查

这是最容易踩坑的环节:

  • 局域网连通性:确保Android设备和SQL Server电脑在同一个WiFi网络下,你可以用Android设备ping电脑IP测试是否能通
  • SQL Server端口设置:
    1. 打开SQL Server配置管理器,找到「SQL Server网络配置」→「SQLEXPRESS的协议」,启用TCP/IP
    2. 双击TCP/IP,在「IP地址」选项卡找到「IPAll」,设置「TCP端口」为1433,然后重启SQL Server服务
  • 防火墙放行:在电脑的防火墙中添加入站规则,允许1433端口的TCP连接,否则Android设备会被防火墙拦截
  • 远程连接开关:打开SQL Server Management Studio(SSMS),右键服务器→「属性」→「连接」,勾选「允许远程连接到此服务器」

3. 账号与权限配置

  • 身份验证模式:确保SQL Server设置为「混合模式(SQL Server和Windows身份验证模式)」,可以在SSMS右键服务器→「属性」→「安全性」查看修改,修改后需重启服务
  • 账号权限:确认你使用的username账号拥有远程连接权限,并且对Mydbname数据库有读写权限。可以在SSMS中给账号添加「public」和「db_datareader/db_datawriter」角色

4. Android项目依赖与权限

  • 添加jtds依赖:在app模块的build.gradle(Module level)中添加依赖:
    implementation 'net.sourceforge.jtds:jtds:1.3.1'
    
  • 网络权限:在AndroidManifest.xml中添加必备的网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    

如果按照上面的步骤排查后还是出错,建议把捕获到的异常信息贴出来,能更精准定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:00:26