1

次のコードを使用して、Android アプリを sqlserver に接続しています。

String url="jdbc:sqlserver://10.0.2.2;instance=14GRAFICALI\\MSSQLSERVER2008;databaseName=AndroidDB;integratedsecurity=true";

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


        TextView tvData=(TextView)findViewById(R.id.tvSelectedData);

        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
            Connection conn =DriverManager.getConnection(url);                   

            Statement statement=conn.createStatement();
            ResultSet resultSet=statement.executeQuery("select * from UserMaster");
            while(resultSet.next()){
                tvData.setText(" Data1 : "+resultSet.getString(1)+"  Data 2 : "+resultSet.getNString(2));
            }

        } catch (Exception e) {
            e.printStackTrace();
            tvData.setText(e.getMessage());
        }

エラー:

The TCP/IP connection to the host 10.0.2.2, port 1433 has failed.

この問題が発生する理由がわかりません。

ログキャット:

09-07 10:41:36.343: W/System.err(344): com.microsoft.sqlserver.jdbc.SQLServerException: ホスト 10.0.2.2、ポート 1433 への TCP/IP 接続に失敗しました。エラー: 「権限が拒否されました。接続プロパティを確認してください。SQL Server のインスタンスがホストで実行され、ポートで TCP/IP 接続を受け入れていることを確認してください。ポートへの TCP 接続がファイアウォールによってブロックされていないことを確認してください。」 .

構成マネージャーで、TCP/IP プロトコルも有効にしました。

ここに画像の説明を入力

私を導いてください。

4

1 に答える 1

3

Android マニフェストに INTERNET パーミッションを追加するのを忘れた可能性があります。

于 2013-09-07T06:18:22.300 に答える