当前位置: 首页 > 面试题库 >

与本地SQL Server数据库的连接在模拟器上有效,但在实际设备上失败

章远航
2023-03-14
问题内容

我试图连接到当前托管在本地计算机上的SQL Server数据库。我正在使用以下代码进行连接:

public class DBConnect {

    private static volatile DBConnect INSTANCE = null;
    String URL = "";
    Connection conn = null;
    Statement statement = null;
    ResultSet resultSet = null;

    private DBConnect() {

    }

    public static DBConnect getInstance() {
        if (INSTANCE == null) {
            synchronized (DBConnect.class) {
                INSTANCE = new DBConnect();
            }
        }
        return INSTANCE;
    }

    public void setConnection(String DBName, String UserName, String Password) {
        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
            URL = "jdbc:jtds:sqlserver://192.168.0.81:1433;instanceName=SQLEXPRESS;DatabaseName=" + DBName + ";integratedSecurity=true;user=" + UserName + ";password=" + Password;
            conn = DriverManager.getConnection(URL);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

这对我的Genymotion模拟器有效,因为我还执行了选择操作并看到了显示的结果。

我正在使用JTDS驱动程序来执行此操作

但是,当我尝试使用在同一Wi-Fi网络上的真实设备无法正常工作时,出现连接错误。

任何想法我为什么要得到这个?

这是我的错误日志:

java.sql.SQLException: Network error IOException: failed to connect to /192.168.0.81 (port 1433) after 90000ms
07-18 08:29:09.465  27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:410)
07-18 08:29:09.466  27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:187)
07-18 08:29:09.466  27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at java.sql.DriverManager.getConnection(DriverManager.java:175)
07-18 08:29:09.467  27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at java.sql.DriverManager.getConnection(DriverManager.java:140)
07-18 08:29:09.467  27413-27514/ordermanager.sentosa.ro.ordermanager W/System.err﹕ at ordermanager.sentosa.ro.ordermanager.utils.DBConnect.setConnection(DBConnect.java:39)
安卓
sql
SQL服务器

问题答案:

我可以看到您的问题的两种可能的解决方案:

  1. 您使用的Genymotion模拟器可能在其他网络上运行
  2. 通过设置以下内容来检查您的SQL Server数据库是否可以在线模式访问:

ALTER DATABASE database-name SET ONLINE



 类似资料:
  • 我正在Android系统上使用简单数据格式。我试图将时间从美国语言环境转换为瑞典语。它在模拟器中工作正常,但当我在真实设备上测试时,它不起作用。 提前谢谢。

  • 在我的应用程序中,对于特定的< code>EditText,我希望句子的第一个字母是大写字母。所以我用了< code > Android:input type = " textCapSentences " 。 奇怪的是这适用于模拟器,但不适用于模拟器。我什至尝试了,即使它已被弃用,但它不起作用。 相关事实: > 模拟器操作系统:4.0.3 真实设备操作系统:4.0.4 应用minSdk版本:2.3

  • 我不太清楚为什么会发生这种情况。我一直在做一些研究,但情况太模糊了,我甚至很难找到解决办法。 我使用Android Studio创建了一个应用程序,并一直在一个虚拟仿真器上运行,其中< code>Toast功能使用这两行简单的代码运行良好 但当我在手机上运行这个应用程序时,它一直死机。我有Galaxy Grand Prime,甚至不确定它是否重要。

  • 朋友们试图在ios实际设备上运行appium脚本,出现以下错误 Eclipse错误: [TestNG]正在运行: /private/var/folders/05/79kfthm94qjd3bngd2l5pv7r0mx69v/T/testng-eclipse--1690789728/testng-customsuite.xml 配置失败:@BeforeClass setUpBeforeClass o

  • 几周前我开始使用Android Studio。我在一个具有正常登录屏幕的应用程序上工作过,在模拟器上一切正常。但如果我尝试在我的三星Galaxy S7 Edge(Android 7.0)上运行该应用程序,该应用程序会立即崩溃。 我已经用API 23模拟了Nexus 5,当我用API 24模拟的Pixel尝试时,模拟器也会崩溃。所以我想问题取决于Android版本? Logcat(我把我正在使用的所

  • 问题内容: 这是我现在正在使用我的Android应用程序处理的问题。程序在模拟器上运行正常,没有任何错误,但在运行相同操作系统的真实设备上却出现了错误。 我有一个应用程序小部件更新服务,可以更新我的小部件。此服务检查窗口小部件是否在屏幕上,否则不进行更新过程。在模拟器上工作正常。 每次必须在OnReceive方法中更新窗口小部件时,我都会在字符串变量check_intent中捕获该意图,该变量告诉