2017-10-24 7 views
0

sqliteからカラムの重みを選択できません ユーザとパスワードが印刷物の重量(クエリ)を確認すると、 助けてください。 sqliteクエリからselectカラム3を取得する

public class DatabaseHelperTwinIGE extends SQLiteOpenHelper{ 

    private static final String DATABASE_NAME = "test.db"; 
    private static final int DATABASE_VERSION = 1; 
    private final Context context; 
    SQLiteDatabase db; 

    private static final String DATABASE_PATH = "/data/data/com.app.army.tab/databases/"; 
    private final String USER_TABLE = "user"; 


    public DatabaseHelperTwinIGE(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     this.context = context; 
     createDb(); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase sqLiteDatabase) { 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { 
    } 

    public void createDb(){ 
     boolean dbExist = checkDbExist(); 

     if (!dbExist){ 
      this.getReadableDatabase(); 
      copyDatabase(); 
     } 
    } 

    private boolean checkDbExist(){ 
     SQLiteDatabase sqLiteDatabase = null; 

     try { 
      String path = DATABASE_PATH + DATABASE_NAME; 
      sqLiteDatabase = SQLiteDatabase.openDatabase(path,null,SQLiteDatabase.OPEN_READONLY); 
     }catch (Exception ex){ 
     } 


     if (sqLiteDatabase != null){ 
      sqLiteDatabase.close(); 
      return true; 
     } 
     return false; 

    } 

    private void copyDatabase(){ 
     try { 
      InputStream inputStream = context.getAssets().open(DATABASE_NAME); 

      String ourFileName = DATABASE_PATH + DATABASE_NAME ; 

      OutputStream outputStream = new FileOutputStream(ourFileName); 

      byte[] b = new byte[1024]; 
      int length; 


      while ((length = inputStream.read(b)) > 0){ 
       outputStream.write(b,0,length); 
      } 

      outputStream.flush(); 
      outputStream.close(); 
      inputStream.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    private SQLiteDatabase openDatabase(){ 
     String path = DATABASE_PATH + DATABASE_NAME; 
     db = SQLiteDatabase.openDatabase(path,null,SQLiteDatabase.OPEN_READWRITE); 
     return db; 
    } 
    public void close(){ 
     if (db !=null){ 
      db.close(); 
     } 

    } 


    public boolean checkUserExist(String username,String password){ 
     String[] column = {"username"}; 
     db = openDatabase(); 

     String selection = "username=? and password = ?" ; 
     String[] selectionArgs = {username,password}; 

     Cursor cursor = db.query(USER_TABLE,column,selection,selectionArgs,null,null,null); 
     int count = cursor.getCount(); 

     cursor.close(); 
     close(); 
     if (count>0){ 
      return true; 
     } else { 
      return false; 
     } 

    } 

enter image description here

Button btnLogin; 
EditText editUsername; 
EditText editPassword; 
TextView result; 
DatabaseHelperTwinIGE databaseHelperTwinIGE; 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.tab5twinoge, container, false); 


    btnLogin = (Button)view.findViewById(R.id.btnAdd); 
    editUsername = (EditText)view.findViewById(R.id.txtNumber1); 
    editPassword = (EditText)view.findViewById(R.id.txtNumber2); 
    result = (TextView)view .findViewById(R.id.txtResult); 

    databaseHelperTwinIGE = new DatabaseHelperTwinIGE(getActivity()); 

    btnLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      boolean isExist = databaseHelperTwinIGE.checkUserExist(editUsername.getText().toString(),editPassword.getText().toString()); 

      if (isExist){ 
       Toast.makeText(getActivity(),"Login Success",Toast.LENGTH_SHORT).show(); 

      }else { 
       editPassword.setText(null); 
       Toast.makeText(getActivity(),"Login failed. Invalid username or password.",Toast.LENGTH_SHORT).show(); 

      } 
     } 
    }); 


    return view; 

} 
} 

は私がsqliteのクエリから体重を印刷したい
印刷ログイン成功が

私は
sqliteの から列重みを選択カントたくない場合は、ユーザーとパスワードチェック印刷重量(クエリ)to

答えて

1

このようなことを試すと、データベースからweightを選択して選択します。対応する重量は、パスワードとユーザー名が正しい場合にのみ返されます。最初の結果のみを選択します。あなたはこのようなToast表示することができます次に

public int getUserWeigth(String username, String password) { 
    String[] column = {"weight"}; 
    db = openDatabase(); 

    String selection = "username=? and password = ?"; 
    String[] selectionArgs = {username, password}; 

    int weight = -1; 

    Cursor cursor = db.query(USER_TABLE, column, selection, selectionArgs, null, null, null); 
    if (cursor.moveToFirst()) { 
     weight = cursor.getInt(0); 
    } 
    cursor.close(); 
    close(); 

    // if the user credentials were valid, a weight will be returned, otherwise -1 
    return weight; 
} 

int weight = databaseHelperTwinIGE.getUserWeigth(editUsername.getText().toString(), editPassword.getText().toString()); 

if (weight > -1){ 
    Toast.makeText(getActivity(),"Login Success, weight = " + weight,Toast.LENGTH_SHORT).show(); 
    result.setText(Integer.toString(weight)); 
} else { 
    editPassword.setText(null); 
    Toast.makeText(getActivity(),"Login failed. Invalid username or password.",Toast.LENGTH_SHORT).show(); 
} 
+0

量タイプのtexgxtを –

+0

そして、私はそれがその –

+0

へのgetInt()を変更しますパスワード){ String [] column = {"weight"}; db = openDatabase(); 文字列の選択= "username =?とpassword =?"; String [] selectionArgs = {ユーザー名、パスワード}; int weight = -1; カーソルカーソル= db.query(USER_TABLE、column、selection、selectionArgs、null、null、null); if(cursor.moveToFirst()){ weight = cursor.getInt(0); } cursor.close(); close(); 返品重量; } } –

関連する問題