Impossible de se connecter au server SQL à partir d'Android

Je veux me connecter au server SQL depuis un Android. Je veux accéder aux données du server SQL. Mais il ne se connecte pas. Aidez-moi s'il vous plaît à résoudre ceci.

J'ai inclus jtds-1.2.7.jar

Voici ma MainActivity (je mentionne où j'ai eu une erreur dans le programme):

 try{ Ssortingng driver = "net.sourceforge.jtds.jdbc.Driver"; Class.forName(driver).newInstance(); conUrl = "jdbc:jtds:sqlserver://192.168.1.15 :1433/Retail_MB;encrypt=fasle;user=sa;password=123;instance=SQLEXPRESS;"; uname = "sa"; pass = "123"; /////// On this statement it gives error... connect = DriverManager.getConnection(conUrl,uname,pass); Statement statement=connect.createStatement(); rs=statement.executeQuery(str); while(rs.next()){ Log.w("Data:",rs.getSsortingng(0)); } connect.close(); } catch (Exception e){ Log.w("Error connection","" + e.getMessage()); } 

Il donne l' erreur sur DriverManager.getConnection (conUrl, uname, pass);

L'erreur est une IOException:

 socket failed: EACCES (Permission denied) 

Ceci est mon manifeste:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.alphahms" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@ssortingng/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.alphahms.MainActivity" android:label="@ssortingng/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

Quel est le problème? Experts Android et SQL Server s'il vous plaît Aidez-moi.

Essayez d'append

 <uses-permission android:name="android.permission.INTERNET" /> 

dans votre manifeste Android.

Il permet aux applications d'ouvrir des sockets réseau.

Le premier EACCES (Permission denied) est parce que vous n'avez pas l'autorisation internet dans le manifeste:

 <uses-permission android:name="android.permission.INTERNET" /> 

Après avoir ajouté que vous obtenez l'application ANR ne répond pas. C'est parce que vous bloquez le thread d'interface user pendant 5 secondes ou plus. Vous ne devriez pas faire de requests de réseau sur le thread de l'interface user mais utiliser un thread d'arrière-plan pour eux. AsyncTask est probablement le moyen le plus simple de décharger des opérations sur un thread backgrond. (Puisque votre targetSdkVersion est supérieure à 11, vous devriez aussi get NetworkOnMainThreadException pour effectuer des opérations réseau sur le thread de l'interface user. Je suppose que vous avez supprimé cette exception dans le code que vous ne montrez pas.

Généralement, faire des connections de database JDBC à partir d'un client mobile est une mauvaise idée. Les protocoles JDBC sont conçus pour des réseaux à faible latence à haut débit, par exemple dans un centre de données. Les réseaux de données mobiles sont lents et peu fiables pour utiliser efficacement JDBC. Au lieu de cela, créez un service Web pour vos opérations de database distante et connectez votre application mobile au service Web.