如何在android模拟器中使用jdbc连接到mssql服务器?

时间:2013-03-04 05:23:36

标签: android sql-server

我是android开发的初学者。现在我试图通过emulator.MS SQL 2008 R2在另一台(服务器)机器上运行来连接MS SQL 2008 R2。我收到以下错误:

The TCP/IP connection to the host xxx.xxx.xx.x\SQL2008R2DEV has failed; 
error: null;
verify connection properties.
make sure that instance of SQL server running on the host and accepting TCP/IP connection to the port are not blocked by Windows Firewall.

注意我已在java应用程序中完成此操作。我也可以访问我的数据库。 但为什么不能在android程序中? 有什么想法吗?

注意:两台服务器和我的PC都通过LAN连接。

3 个答案:

答案 0 :(得分:5)

是的,可以从android模拟器连接到MSSQL。例如,如果另一个系统具有IP 192.168.1.2,那么您可以在模拟器中使用相同的IP连接到数据库。无论如何在Android中使用JDBC都不受鼓励。 link 将解释为什么不建议在Android中使用JDBC。这是使用JDBC连接到MSSQL数据库的方法:

    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
        Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=msdibya;user=dibya;password=dibya;");                   

        System.out.println("connected");
        Statement statement=conn.createStatement();
        ResultSet resultSet=statement.executeQuery("select * from [user]");
        while(resultSet.next()){
            System.out.println(" "+resultSet.getString(1)+" "+resultSet.getNString(2));
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

我希望你有合适的jar文件。别忘了导入它们。

答案 1 :(得分:1)

你无法直接访问远程数据库只能通过android中的web服务进行访问。任何与网络相关的任务都不会在主线程上写入使用Asynctask。如果发布你的代码你将如何访问将更多是有用的。

答案 2 :(得分:0)

不建议从android创建MSSQL连接,最好在服务器中创建Web服务,并在android中使用Web服务。