【发布时间】:2020-11-03 23:17:48
【问题描述】:
我正在为当地组织创建一个程序来盘点。应用程序通过 MSSQL 8.2 连接器连接到 SQL Server。手机上的应用程序应允许接收和发送物品信息。我有一个静态类来连接到数据库,它处理连接。在 Eclipse 中,我能够成功连接和查询数据库。在 Android Studio 中,每次尝试连接时都会出错。
-服务器托管在同一台电脑上。
-端口已重复配置。目前已完全开放 TCP 和 UDP 的入站和出站规则。 SQL Server 的动态端口已打开。 SQL server 的服务已经重启了几十次。 1433 已启用并关闭,但当前为空白。
-尝试通过IP地址连接,无法解析主机
-权限被编辑以允许登录访问修改数据库
-集成安全和TLS安全尝试不同时间,都失败了。
错误列表:
-
与主机 BLACK-G 的“xxxxx”端口 1433 的连接失败。 与主机的 TCP/IP 连接失败,无法解析主机。
-
连接到名为 BLACK-G 实例 sqlexpress 的主机失败,否
与主机名关联的地址,打开 UDP 流量到端口 1434 未知的主机异常。无法解析主机 BLACK-G -
连接被拒绝
-
连接失败
-
与主机 192.168.1.219 的连接失败。连接失败 192.168.1.219(端口 1433)在 2478 毫秒后从 192.168.1.87(端口 33654)验证连接属性。
这里是代码
package com.example.ccupboard_1;
import android.os.Build;
import androidx.annotation.RequiresApi;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DatabaseJAVA {
// @RequiresApi(api = Build.VERSION_CODES.KITKAT)//public static void main(String[] args) {
public static String Connect() {
// Create a variable for the connection string.
String connectionUrl = "jdbc:sqlserver://BLACK-G\\SQLEXPRESS;user=ay7;password=343434;databaseName=ayTestDatabase2;" ;
ResultSet resultSet = null;
try (Connection connection = DriverManager.getConnection(connectionUrl);
Statement statement = connection.createStatement();) {
// Create and execute a SELECT SQL statement.
String selectSql = "SELECT Fname, Lname from dbo.Customers";
resultSet = statement.executeQuery(selectSql);
// Print results from select statement
while (resultSet.next()) {
result += (resultSet.getString("Fname") + " " + resultSet.getString("Lname")+"\n");
}
} catch (SQLException e) {
e.printStackTrace();
result = e + "";
}
return result;
}
}
调用connect方法的主要活动片段:
case R.id.buttonSignOut: { //used to test connection currently, simply attempts to connect and //returns the value to a textview on the page
Thread thread = new Thread() {
public void run() {
textviewLowItemAlert.setText(DatabaseJAVA.Connect());
}
};
thread.start();
break;
解决此问题的下一步是什么?它适用于 Eclipse,但不适用于工作室。我尝试了十几种不同的连接字符串,其中大多数都抛出了相同的错误。我的服务器是否不允许访问 Android Studio?大多数错误似乎是 Android Studio 无法在服务器上找到它。
【问题讨论】:
-
@JoaquinAlvarez 好的,我尝试了您的连接。我增加了超时时间,并开始了它。这一次,我得到 Network Error IOException, EHOSTUNREACH(No route to host) 我假设网络方面有问题,并且会玩一段时间。
-
@JoaquinAlvarez 路由器将我的 IP 地址从 .218 更改为 .219。我在字符串中更改了它,然后再次尝试。这一次,它说找不到 BlackPC\SQLEXPRESS 的实例。我将它缩短为 SQLEXPRESS,它说 DB 服务器关闭了连接。还在玩这个。
标签: java android sql-server eclipse android-studio