弥猫深巷的老先森 2016-05-05 03:05 采纳率: 0%
浏览 9063

jdbc通过1433端口连接sqlserver数据库总是失败

最近在做一个小项目,在android的额产品里塞中直接用jdbc连接本地服务器的sqlserver数据库的时候出现这个错误:“请验证连接属性,并检查 SQL Server 的实例正在主机上运行, 且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接”

在网上查阅了很多资料,server的端口都是1433,IP2也启动了,sql实例也都启动了,server服务也重新启动了,防火墙也关闭了,但是就是一直连不上,大家有什么好的方法吗

这是简单的测试代码:
package com.example.myfinallytest;

import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import android.os.Bundle;
import android.os.StrictMode;

import java.sql.*;

public class MainActivity extends ActionBarActivity {

private TextView Text;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  
                        .detectDiskReads()  
                        .detectDiskWrites()  
                        .detectNetwork()  
                        .penaltyLog()  
                        .build());   
            StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  
                        .detectLeakedSqlLiteObjects()  
                        .detectLeakedClosableObjects()  
                        .penaltyLog()  
                        .penaltyDeath()  
                        .build());  


    Text = (TextView)findViewById(R.id.Test);
    System.out.println("1");
    Connect();
    System.out.println("2");
}

  public Connection Connect(){ 
      String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载驱动
      System.out.println("加载驱动");
      String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=Test"; //连接数据库
      System.out.println("加载URL");
      String userName = "sa"; //服务器用户名
      String userPassword = "12345"; //服务器密码
      Connection Con = null; 
      try{ 
          System.out.println("进入try");
          Class.forName(driverName).newInstance(); //加载驱动到java虚拟机
          System.out.println("加载JAVA虚拟机");
          Con = DriverManager.getConnection(dbURL,userName,userPassword);
          Text.setText("连接成功!"); 
          System.out.println("连接成功!");
      }catch(Exception e){ 
          e.printStackTrace(); 
          Text.setText("连接失败!");
          System.out.println("连接失败!");
      }
      return Con;
  }

}

![![![图片说明](https://img-ask.csdn.net/upload/201605/05/1462417358_289781.png)图片说明](https://img-ask.csdn.net/upload/201605/05/1462417352_919748.png)图片说明](https://img-ask.csdn.net/upload/201605/05/1462417346_945896.png)图片说明

  • 写回答

15条回答 默认 最新

  • 尔安 2016-05-05 03:09
    关注

    Android连接SqlServer数据库,一般情况下是连接后台服务端,服务端来做数据存取操作。 Android不能直接连接SqlServer数据库。
    PS:如果虚拟机上需要连接本机ip,不是localhost,而是10.0.2.2

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题