RawQuery (ক্যোয়ারী, নির্বাচনআরগস)


88

আমি টেবিল থেকে ডেটা পুনরুদ্ধারের জন্য নির্বাচিত ক্যোয়ারী ব্যবহার করতে চাই। আমি খুঁজে পেয়েছি, ডেটা পুনরুদ্ধার করার rawQuery(query, selectionArgs)জন্য SQLiteDatabaseক্লাসের পদ্ধতি । তবে কীভাবে queryএবং পদ্ধতিতে selectionArgsপাস করা উচিত তা আমি জানি না rawQuery?


অ্যান্ড্রয়েড বিকাশকারী ওয়েবসাইট অ্যান্ড্রয়েড বিকাশকারী এই সমস্ত ছোট প্রশ্নের জন্য সেরা উত্স হ'ল এই সমস্ত ছোট প্রশ্নের জন্য সেরা উত্স
তরুণ

উত্তর:


221
rawQuery("SELECT id, name FROM people WHERE name = ? AND id = ?", new String[] {"David", "2"});

আপনার মতো সমান সংখ্যক উপাদানের সাথে আপনি একটি স্ট্রিং অ্যারে পাস করেন? "


4
rawQuery("SELECT id, name FROM people WHERE ?= ?", new String[] {"column_name", "David"});, এটি কি একটি বৈধ কৌতুক?
theapache64

9
@ theapache64 এটি কোনও বৈধ প্রশ্ন নয়। দ্য '?' শুধুমাত্র মানগুলির জন্য প্রযোজ্য।
বিএমবি

16

হতে পারে এটি আপনাকে সহায়তা করতে পারে

Cursor c = db.rawQuery("query",null);
int id[] = new int[c.getCount()];
int i = 0;
if (c.getCount() > 0) 
{               
    c.moveToFirst();
    do {
        id[i] = c.getInt(c.getColumnIndex("field_name"));
        i++;
    } while (c.moveToNext());
    c.close();
}

10

RawQuery এর একটি উদাহরণ - db.rawQuery("select * from table where column = ?",new String[]{"data"});


নতুন স্ট্রিং [] data "ডেটা"} কী? আপনি কি কেবল উপরের বিবৃতিটির ব্যাখ্যা দিতে পারেন? আগাম ধন্যবাদ.
শ্রী_আইফোনদেভ


3

নীচে কোড দেখুন এটি আপনাকে সাহায্য করতে পারে।

String q = "SELECT * FROM customer";
Cursor mCursor = mDb.rawQuery(q, null);

বা

String q = "SELECT * FROM customer WHERE _id = " + customerDbId  ;
Cursor mCursor = mDb.rawQuery(q, null);

4
কেন এই ভোট গ্রহণ করা হয়? এটি প্রদত্ত কার্যকারিতাটি কীভাবে সঠিকভাবে ব্যবহার করতে পারে তা দেখায় না rawQuery। এর উদ্দেশ্য হ'ল স্ট্রিং ইত্যাদিকে এড়িয়ে যাওয়া, এছাড়াও রাউকোডের উত্তর গ্রহণ করা উচিত।
a মিগো

4
এটি কীভাবে কাঁচাওয়ালা ব্যবহার করা উচিত নয়, আপনার ব্যবহার করা উচিত? প্লেসহোল্ডার এবং দ্বিতীয় প্যারামিটার হিসাবে তা পূরণ করার জন্য।
এদুয়ার্দো Naveda

4
আপনি কাঁচা কিউরি (") ব্যবহার করার কথা বলছেন না কেন , জাভা বাদে এই সমস্ত ভাষাতে আরও বুদ্ধিমান, সংক্ষিপ্ত, বোধগম্য এবং মানক উপায়। সুতরাং এই উপায় পছন্দ।
not2qubit

@aMiGo স্ট্রিংটি নীচের স্তরের যেকোন উপায়ে কাটা হয়েছে।
পাস্কালিয়াস

আপনি যদি স্ট্রিংয়ের মানকে একত্রিত করেন তবে আপনি অক্ষর '(স্ট্রিংয়ের মধ্যে তাদের 2 টির প্রয়োজন) এবং অক্ষর নিয়ে সমস্যা পান; (পার্শ্ব প্রতিক্রিয়া তৈরি হতে পারে)। ধরুন গ্রাহকবিডিআইডি একটি স্ট্রিং যা পড়ছে - '123'; গ্রাহক থেকে মুছুন - তারপরে আপনি সমস্ত ডেটা আলগা করবেন!
মার্টিন

2

সম্পূর্ণতা এবং সঠিক সংস্থান পরিচালনার জন্য:

        ICursor cursor = null;
        try
        {

            cursor = db.RawQuery("SELECT * FROM " + RECORDS_TABLE + " WHERE " + RECORD_ID + "=?", new String[] { id + "" });

            if (cursor.Count > 0)
            {
                cursor.MoveToFirst();
            }
            return GetRecordFromCursor(cursor); // Copy cursor props to custom obj
        }
        finally // IMPORTANT !!! Ensure cursor is not left hanging around ...
        {
            if(cursor != null)
                cursor.Close();
        }

2

যদি আপনার এসকিউএল কোয়েরি এটি হয়

SELECT id,name,roll FROM student WHERE name='Amit' AND roll='7'

তাহলে RawQuery হবে Qu

String query="SELECT id, name, roll FROM student WHERE name = ? AND roll = ?";
String[] selectionArgs = {"Amit","7"} 
db.rawQuery(query, selectionArgs);

0
String mQuery = "SELECT Name,Family From tblName";
Cursor mCur = db.rawQuery(mQuery, new String[]{});
mCur.moveToFirst();
while ( !mCur.isAfterLast()) {
        String name= mCur.getString(mCur.getColumnIndex("Name"));
        String family= mCur.getString(mCur.getColumnIndex("Family"));
        mCur.moveToNext();
}

নাম এবং পরিবার আপনার ফলাফল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.