简体   繁体   中英

Connect my app to my SQL Server database?

I am trying to make a login screen that when the users details are entered it will connect to the MS SQL database, the problem is it is not connecting. Am I doing it the right way or is there a better way to do this?

The error I am getting.

E/ERROR: Unknown server host name 'Unable to resolve host "myipaddresstestDatabasetestDatabase": No address associated with hostname'.

Here is my code that I tried.

public class LoginActivity extends AppCompatActivity {

    private static String ip = "myip";
    private static String port = "myportnum";
    private static String Class = "net.sourceforge.jtds.jtbc.Driver";
    private static String database = "name";
    private static String username = "name";
    private static String password = "password";
    private static String url = "jdbc:jtds:sqlserver://"+ip+":"+port+"/"+database;

    private Connection connection = null;




    private EditText userNameET, passwordEt;
    private Button loginBTN;



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


            userNameET = findViewById(R.id.userNameEditText);
            passwordEt = findViewById(R.id.passEditText);

            loginBTN = findViewById(R.id.loginBtn);


            StrictMode.ThreadPolicy policy = null;
            policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);


        }



   // @android.support.annotation.RequiresApi(api = Build.VERSION_CODES.CUPCAKE)
    private class DoLoginForUser extends AsyncTask<String, Void, String> {
        String emailId, password;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            emailId = userNameET.getText().toString();
            password = passwordEt.getText().toString();
           // progressBar.setVisibility(View.VISIBLE);
            loginBTN.setVisibility(View.GONE);
        }

        @Override
        protected String doInBackground(String... params) {

            try {
                ConnectionHelper con = new ConnectionHelper();
                Connection connect = ConnectionHelper.CONN();

                String query = "Select * from testDatabase where UserId='" + emailId + "'";
                PreparedStatement ps = connect.prepareStatement(query);

                Log.e("query",query);
                ResultSet rs = ps.executeQuery();
                if (rs.next()) {
                    String passcode = rs.getString("password");
                    connect.close();
                    rs.close();
                    ps.close();
                    if (passcode != null && !passcode.trim().equals("") && passcode.equals(password))
                        return "success";
                    else
                        return "Invalid Credentials";

                } else
                    return "User does not exists.";
            } catch (Exception e) {

                return "Error:" + e.getMessage();
            }
        }

        @Override
        protected void onPostExecute(String result) {

            //Toast.makeText(signup.this, result, Toast.LENGTH_SHORT).show();
           // ShowSnackBar(result);
           // progressBar.setVisibility(View.GONE);
            loginBTN.setVisibility(View.VISIBLE);
            if (result.equals("success")) {
                SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("userdetails",0);
                SharedPreferences.Editor editor = sharedPreferences.edit();

                editor.putString("email",userNameET.getText().toString());

                editor.commit();

                Intent i = new Intent(LoginActivity.this, MainActivity.class);
                startActivity(i);

            } else {
                //ShowSnackBar(result);
            }
        }
    }

    //public void ShowSnackBar(String message) {
      //  Snackbar.make(lvparent, message, Snackbar.LENGTH_LONG)
               // .setAction("CLOSE", new View.OnClickListener() {
                 //   @Override
                //    public void onClick(View view) {

              ////      }
            //    })
            //    .setActionTextColor(getResources().getColor(android.R.color.holo_red_light))

           //     .show();
   // }

    public void DoLogin(View v)
    {
        DoLoginForUser login = null;
        login = new DoLoginForUser();
        login.execute("");
    }

I expected it to connect and then take me to the next screen, but the error is persistent?

The error message "Unable to resolve host" indicates that you are not putting the correct sql server hostname or ip in your connection string, or you try to reach an unreachable server (from your test device).

Is the sql server reachable for you from your dev computer? If so, you may need to connect your test device via wifi.

Make sure the device and the sql server are in the same.network.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM