0

Android で SqlServer 2008r2 データベースに接続しようとしています。

接続文字列が正しく形成されていないようです。

次のエラーが発生しています:

com.microsoft.sqlserver.jdbc.SQLServerException: インスタンス 14graficali\mssqlserver20081433 という名前のホスト 10.0.2.2 への接続に失敗しました。エラー: 「java.net.SocketException: 許可が拒否されました」。サーバーとインスタンスの名前を確認し、ファイアウォールがポート 1434 への UDP トラフィックをブロックしていないことを確認します。SQL Server 2005 以降の場合、SQL Server Browser Service がホストで実行されていることを確認します。

私のSqlインスタンス:

ここに画像の説明を入力

私が形成した接続文字列:

String dbName = "AndroidDB";
     String serverip="10.0.2.2";
     String serverport="1433";
     String url = "jdbc:sqlserver://"+serverip+"\\14GRAFICALI\\MSSQLSERVER2008"+serverport+";databaseName="+dbName+"";

私がそれを実装しているコード全体:

public class MainActivity extends Activity {


     String dbName = "AndroidDB";
     String serverip="10.0.2.2";
     String serverport="1433";
     String url = "jdbc:sqlserver://"+serverip+"\\14GRAFICALI\\MSSQLSERVER2008"+serverport+";databaseName="+dbName+"";

    @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());
        }



    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
4

2 に答える 2

1

Android プロジェクトの下にある AndroidManifest.xml ファイルに移動して開き、次の行を追加します。

 <uses-permission android:name="android.permission.INTERNET"/>
于 2013-09-07T06:42:40.553 に答える
1

Android を SQLServer に直接接続する場合に備えて、だまされる必要があるいくつかの手順があります。

ここでの回答で、すべての詳細な手順について説明しました。

プロジェクトに特定のjarが追加されていますが、クラスが見つかりません(AndroidからWebサービスなしのsqlserverへ)

ステージに従ってください。すべてのエラーを克服できると確信しています。

于 2013-09-07T13:28:37.927 に答える