0

I tried to connect SQL server to My android app, but it shows an error. I cant get write output. I created a database 'try' in MS SQL Server and Table name is 'login'. I am using Microsoft SQL Server that is install in my PC. Help me

My code:

public class MainActivity extends AppCompatActivity implements 
    View.OnClickListener {
 EditText username,password;
 Connection con;
@Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      username=(EditText)findViewById(R.id.username);
      password=(EditText)findViewById(R.id.password);
      findViewById(R.id.submit).setOnClickListener(this);
   }

   @Override
  public void onClick(View v) {

    String query = "select * from login where userid= '" + 
    username.getText().toString() + "' and password = '"+ 
  password.getText().toString() +"'  ";
      try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        String 
     url="jdbc:jtds:sqlserver://
  192.168.0.102;databaseName=try;username=sa;password=aakash@123";
        con = DriverManager.getConnection(url); // line 57
        Log.d("Connection : ","Connected");
     Statement   stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        if(rs.next())
        {
            Toast.makeText(this, "Login", Toast.LENGTH_SHORT).show();

            con.close();
        }
        else
        {
            Toast.makeText(this, "Login fail", Toast.LENGTH_SHORT).show();
        }
    }  catch (java.sql.SQLException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

}

} 

I dont known what is error is this? Error :

   E/art: Failed sending reply to debugger: Broken pipe
   AndroidRuntime: FATAL EXCEPTION: main

    android.os.NetworkOnMainThreadException

    at android.os.StrictMode$
     AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1303)

   at java.net.AbstractPlainSocketImpl.
   doConnect(AbstractPlainSocketImpl.java:333)

   at java.net.AbstractPlainSocketImpl.
  connectToAddress(AbstractPlainSocketImpl.java:196)

  at java.net.AbstractPlainSocketImpl.
   connect(AbstractPlainSocketImpl.java:178)                                                                              
   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
        at java.net.Socket.connect(Socket.java:605)                                                                            
    at net.sourceforge.jtds.jdbc.SharedSocket.
    createSocketForJDBC3(SharedSocket.java:288)                                                                                  
  at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:251)                                                                               
  at net.sourceforge.jtds.jdbc.JtdsConnection.<init>
  (JtdsConnection.java:331)                                                                               
  at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)                                                                               
  at java.sql.DriverManager.getConnection(DriverManager.java:569)           
  at java.sql.DriverManager.getConnection(DriverManager.java:237)                                                                              
  at com.software.aj.clgproject.MainActivity.onClick(MainActivity.java:57)                                                                             

Please help me to solve this error.Thank you.

Aakash Jain
  • 87
  • 10
  • 2
    Directly connecting to a remote database from a mobile app is generally a **very** bad idea (compromised login credentials, data connection reliability issues among other things). I'd recommend creating a local cache database which syncs with the remote database via a REST API. See this answer for more details: https://stackoverflow.com/questions/26470117/can-we-connect-remote-mysql-database-in-android-using-jdbc/26471486#26471486 – Michael Dodd Mar 07 '18 at 16:56
  • 1
    You will **at least** need to tell us what the error is. – takendarkk Mar 07 '18 at 17:05
  • Possible duplicate of [How do I fix android.os.NetworkOnMainThreadException?](https://stackoverflow.com/questions/6343166/how-do-i-fix-android-os-networkonmainthreadexception) – Michael Dodd Mar 07 '18 at 17:50
  • Your immediate problem with this code is that you're trying to establish a connection to your database on the main UI thread. You need to run it on a background thread, see the question I linked to above to see how. – Michael Dodd Mar 07 '18 at 17:51

0 Answers0