-2

2つの列(ユーザー名、パスワード)を選択して値を返し、Androidログインページでのユーザーログインを検証するストアドプロシージャを含むテーブルがあります。ストアドプロシージャを呼び出して値を返し、それをユーザー名とパスワードの編集テキストボックスと比較するにはどうすればよいですか。

私のストアドプロシージャは次のとおりです。

USE [Login_DB]
GO
 StoredProcedure [dbo].[spLoginvalidate]    Script Date: 03/13/2013 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[spLoginvalidate]
(
@User_ID varchar(50),
@Password varchar(20),
@Outres int OUTPUT
)
AS
BEGIN TRANSACTION
set @Outres= (SELECT count(*) FROM [dbo].Login
WHERE  User_ID=@User_ID and Password=@Password
and CAST (Password as varbinary(20))=CAST (@Password AS varbinary(20))) 
--WHERE CAST(Password AS varbinary(15)) = CAST(@Password AS varbinary(15))
if(@Outres=1)
begin
set @Outres=1
end
else
begin
set @outres=0
end
COMMIT TRANSACTION 

これが私のコードです:

class CheckLogin extends AsyncTask<String, String, String> {

/**
* Before starting background thread Show Progress Dialog
* */
Context context;

文字列の電子メール、パスワード;

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

}


protected String doInBackground(String... args) {

       // Building Parameters
       // Send your email and password as the following parameters
       List<NameValuePair> params = new ArrayList<NameValuePair>();


       params.add(new BasicNameValuePair("Email", email));
       params.add(new BasicNameValuePair("Password", password));

       String url = "http://192.168.0.57:8000/Service1.svc/rest/Login";
       JSONParser jParser = new JSONParser();

       // This is the entire response like the JSON data you sent me
       JSONObject json = jParser.makeHttpRequest(url, "GET", params, context);

       // Check your log cat for JSON reponse
       // CHECK LOGCAT IF YOU GET ANY RESPONSE FROM SERVER
       Log.d("Results: ", json.toString());

       try {
             // Checking for SUCCESS TAG
             JSONObject validateobject = json.getJSONObject("Details");

             @SuppressWarnings("unused")
            Boolean isloggedin = validateobject.getBoolean("Validat");

             // THATS THE BOOLEAN THAT WILL INDICATE IF VALID LOGIN

             // DO NOT MAKE CHANGES TO GUI ON THIS THREAD E.G. TOAST ETC
             // USE THE ON POST EXECUTE BELOW ELSE THE APPLICATION WILL CRASH

       } catch (JSONException e) {
             e.printStackTrace();
       }

       return null;
}

/**
* After completing background task Dismiss the progress dialog
* **/


}
4

1 に答える 1

0

アプリからデータベースに直接アクセスすることはお勧めできません。アプリを取得すると、どのユーザーもデータベースにアクセスできるようになるためです。

最善の策は、DataBase でストアド プロシージャを呼び出し、結果を Android コードに返すことができる WebService をセットアップすることです。

これは、PHP などで実行できます。

SQL との PHP 通信と、PHP Web サービスとの Android 通信を調べてください。

于 2013-03-13T10:13:22.127 に答える