我一直在尝试从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允许远程连接也被检查。
请帮忙。感谢..
答案 0 :(得分:1)
这不是一个有效的网址。您需要单独使用IP,或者使用scheme:// ip。但是,不建议直接从移动设备连接到数据库 - 这样做需要您的密码才能在应用程序中,这意味着使用该应用程序的任何人都可以访问您的密码。请改用Web服务并将密码保留在服务器上以保证安全。
此外,永远不要设置严格模式。首先是它的黑客。其次,它并不适用于所有设备。第三,如果你需要它,你会让你的应用程序无法响应,并且很可能因看门狗定时器而崩溃。您看到使用它的任何网站都不知道他们正在做什么。
答案 1 :(得分:0)
这不是真正的地址'192.168.0.101 \ SQLEXPRESS:1433' 继续这样'192.168.0.101'
不要在你的设备上试试(有时候它无法看到服务器的ip),首先尝试使用任何“模拟器” 也不要忘记在VirtualBox上进行网络设置