从android连接到MS SQL数据库时出错

时间:2016-09-12 14:26:15

标签: android sql-server

我一直在尝试从android连接到Microsoft SQL Server的数据库。但是我无法做到。请帮忙。我尝试了很多东西。我正在使用jtds - 1.3.1我也试过使用1.3.0版本。但仍然失败了。请帮忙。

public class ConnectionClass {
String ip = "192.168.0.101\\SQLEXPRESS:1433";
String classs = "net.sourceforge.jtds.jdbc.Driver";
String db = "dictionary";
String un = "";
String password = "";

@SuppressLint("NewApi")
public Connection CONN() {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
            .permitAll().build();
    StrictMode.setThreadPolicy(policy);
    Connection conn = null;
    String ConnURL = null;
    try {

        Class.forName(classs);
        ConnURL = "jdbc:jtds:sqlserver://" + ip + ";"
                + "databaseName=" + db + ";user=" + un + ";password="
                + password + ";";
        conn = DriverManager.getConnection(ConnURL);
    } catch (SQLException se) {
        Log.e("ERRO", se.getMessage());
    } catch (ClassNotFoundException e) {
        Log.e("ERRO", e.getMessage());
    } catch (Exception e) {
        Log.e("ERRO", e.getMessage());
    }
    return conn;
}
}

我收到此错误:

  

E / ERRO:未知服务器主机名'主机未解析:192.168.0.101 \ SQLEXPRESS'。

我也试过从上面一行删除SQLEXPRESS(如:192.168.0.101:1033)但是又出现了另一个错误。

我已经从MS SQL启用了TCP / IP,并且我还允许防火墙端口1433以及我也允许来自防火墙的MS SQL。 MS SQL允许远程连接也被检查。

请帮忙。感谢..

2 个答案:

答案 0 :(得分:1)

这不是一个有效的网址。您需要单独使用IP,或者使用scheme:// ip。但是,不建议直接从移动设备连接到数据库 - 这样做需要您的密码才能在应用程序中,这意味着使用该应用程序的任何人都可以访问您的密码。请改用Web服务并将密码保留在服务器上以保证安全。

此外,永远不要设置严格模式。首先是它的黑客。其次,它并不适用于所有设备。第三,如果你需要它,你会让你的应用程序无法响应,并且很可能因看门狗定时器而崩溃。您看到使用它的任何网站都不知道他们正在做什么。

答案 1 :(得分:0)

这不是真正的地址'192.168.0.101 \ SQLEXPRESS:1433' 继续这样'192.168.0.101'

不要在你的设备上试试(有时候它无法看到服务器的ip),首先尝试使用任何“模拟器” 也不要忘记在VirtualBox上进行网络设置