Według mnie najlepszym rozwiązaniem jest użycie sterownika jdbc - działa znakomicie:
Po pierwsze musisz dodać jdbc.jar do projektu, link poniżej:
https://drive.google.com/file/d/0B8jJYELMG7ETc3phRVVKbUZmcWc/view?usp=sharing
Następnie możesz wykorzystać klasę poniżej lub sama zawartość doInBackground umieszczona w osobnym wątku.
Pamiętaj również o uprawnieniach aplikacji, umieść to w manifescie aplikacji
<uses-permission android:name="android.permission.INTERNET" />
public class CheckLogin extends AsyncTask<String, String, String> {
boolean found = false;
private String KEY_USER = "";
private final AppCompatActivity ACT;
public CheckLogin(AppCompatActivity act, String user) {
this.ACT = act;
this.KEY_USER = user;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
found = false;
Toast.makeText(ACT, "Sprawdzam login",Toast.LENGTH_SHORT).show();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
System.out.println("Login Finished");
if (!found) {
Toast.makeText(ACT, "Brak uzytkownika!",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(ACT, "Sukces!",Toast.LENGTH_LONG).show();
}
}
@Override
protected String doInBackground(String... params) {
Connection conn = null;
String url = "jdbc:jtds:sqlserver://192.168.1.1:1433;instance=SQLinstance;DatabaseName=DB2";
String driver = "net.sourceforge.jtds.jdbc.Driver";
String userName = "username";
String password = "password";
try {
Class.forName(driver);
System.out.println("Connecting to db");
conn = DriverManager.getConnection(url, userName, password);
Statement state = conn.createStatement();
String sql = "SELECT [user] FROM [DB2].[dbo].[users] WHERE password LIKE '%" + KEY_USER + "%'";
ResultSet result = state.executeQuery(sql);
while (result.next()) {
found = true;
KEY_USER = (result.getString("user"));
}
conn.close();
} catch (Exception e) {
found = false;
e.printStackTrace();
} finally {
}
return null;
}
}