как мы можем получить конкретную строку из базы данных SQL в Android Studio - PullRequest
0 голосов
/ 12 октября 2018

Я работаю над проектом студии android, в котором мне нужно получить данные определенного имени, по которому я щелкнул из моего списка, данные хранятся в формате sql в виде таблицы, например, если я нажму на имя «maira», оно должно получить данныеmaira из таблицы базы данных.

вот мой код класса предмета здесь сообщение - это название предмета, щелкнувшего в просмотре списка в основной деятельности

 `public class Itemshow extends AppCompatActivity {
SQLiteOpenHelper sqLiteOpenHelper;
TextView nameCustomer;
TextView phoneCustomer;
TextView medicinesCustomer;
String message;
@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_itemshow);



    Bundle bundle=getIntent().getExtras();
    if(bundle!=null)
        message=bundle.getString("item");
    nameCustomer=(TextView)findViewById(R.id.nameTextView);
    nameCustomer.setText(message);


    DatabaseHelper db;
    db=new DatabaseHelper(this);


    Cursor answer = db.getDataForGivenName(message);

    while (answer.moveToNext()){
        // some examples, you can continue from here
        String temp = answer.getString(0);  //0 is the index of the column ID
        String temp2 = answer.getString(1); //1 is the index of the column CUSTOMER_NAME
        // You can possible ad them in Arraylist if you need this data somewhere else
    }




}

}

`

и мой вспомогательный класс базы данных

public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME="Chemist.db";
public static final String TABLE_NAME="chemist_table";
public static final String COL_1="ID";
public static final String COL_2 ="CUSTOMER_NAME";
public static final String COL_3="CUSTOMER_PHONE";
public static final String COL_4="MEDICINES";



public DatabaseHelper( Context context) {
    super(context, DATABASE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("create table "+ TABLE_NAME + " (CUSTOMER_NAME TEXT PRIMARY KEY,CUSTOMER_PHONE TEXT,MEDICINES TEXT)");

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
    onCreate(db);

}

public boolean insertData(String customerName,String phone,String medicines )
{
    SQLiteDatabase db=this.getWritableDatabase();
    ContentValues contentValues=new ContentValues();
    contentValues.put(COL_2,customerName);
    contentValues.put(COL_3,phone);
    contentValues.put(COL_4,medicines);
    long result=db.insert(TABLE_NAME,null,contentValues);
    if (result==-1)
        return false;
    else
        return true;

}

public Cursor getAllData(){
    SQLiteDatabase db=this.getWritableDatabase();
    Cursor res=db.rawQuery("select * from "+TABLE_NAME,null);
    return res;
}
public Cursor getDataForGivenName(String name){
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
    Cursor result = sqLiteDatabase.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE NAME = '" + name + "'", null);
    return result;
}

}

Я не могу это сделать, пожалуйста, помогите мне.я просто хотел показать данные элемента из всех столбцов, выбранных в списке

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете начать с добавления метода для получения всех данных для данного имени, например "maira"

 public Cursor getDataForGivenName(String name){
            SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
            Cursor result = sqLiteDatabase.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE NAME = '" + name + "'", null);
            return result;
        }

Затем в свою базу данных помощник просто добавьте

Cursor answer = sqLiteHelper.getDataForGivenName(message);

и получите вседанные, которые вам нужны, например:

while (answer.moveToNext()){
    // some examples, you can continue from here
    String temp = answer.getString(0);  //0 is the index of the column ID
    String temp2 = answer.getString(1); //1 is the index of the column CUSTOMER_NAME
    // You can possible ad them in Arraylist if you need this data somewhere else       
  }

Обратите внимание, что перед тем, как перейти к этому шагу, вам нужно получить имя (miara) из списка с именами, вы можете сделать это, установив для некоторых onclick слушателей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...