Android SQLite获取单个数据(*单个数据)(更新post)

Android SQLite获取单个数据(*单个数据)(更新post),android,database,sqlite,android-sqlite,Android,Database,Sqlite,Android Sqlite,我是Android的初学者。请帮助我解决这个简单的问题:从SQLite检索单个数据 案例1: dbhelper.java // Getting single part public lispar Look(int id) { SQLiteDatabase db = this.getReadableDatabase(); Cursor kr = db.query(TABLE_PART, new String[]{ID,

我是Android的初学者。请帮助我解决这个简单的问题:从SQLite检索单个数据

案例1:

dbhelper.java
// Getting single part
    public lispar Look(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor kr = db.query(TABLE_PART, new String[]{ID,
                        KODE, NAMA}, ID + "=?",
                new String[]{String.valueOf(id)}, null, null, null, null);
        if (kr != null)
            kr.moveToFirst();

        lispar contact = new lispar(Integer.parseInt(kr.getString(0)),
                kr.getString(1), kr.getString(2));
        // return contact
        kr.close();
        db.close();
        return contact;
    }
    
main.java
kodcari = (Button) findViewById(R.id.carikod);
        kodcari.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){

                ckodin = kodin.getText().toString(); //wrong string?
                parin.getText().toString();
                //what should i do?
            }
        });

        partnam = (EditText) findViewById(R.id.namepart);
        dbHandle = new DbHandle(this);


    }
案例2:

main.java ()

kodin = (EditText) findViewById(R.id.inkod);
        kodcari = (Button) findViewById(R.id.carikod);
        kodcari.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SQLiteDatabase db = mDbHelper.getReadableDatabase();
                String[] projection = {
                        FeedEntry._ID,
                        FeedEntry.KODE,
                        FeedEntry.NAMPART,
                        FeedEntry.BELANG
                };

                // Filter results WHERE "kode" = 'kode part'
                String selection = FeedEntry.KODE + " = ?";
                String[] selectionArgs = parin.getText().toString(), belangin.getText().toString();//{ "KODE_PART" }; //

                // How you want the results sorted in the resulting Cursor
                String sortOrder = FeedEntry.KODE + " DESC";

                Cursor kr = db.query(
                        FeedEntry.KODE,         // The table to query
                        projection,             // The columns to return
                        selection,              // The columns for the WHERE clause
                        selectionArgs,          // The values for the WHERE clause
                        null,                   // don't group the rows
                        null,                   // don't filter by row groups
                        sortOrder               // The sort order
                );
                if (kr != null)
                kr.moveToFirst();
                //String parin = kr.getString(
                //kr.getColumnIndexOrThrow(FeedEntry._ID)
                //);

            }
        });
main.xml

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Looking by Code"
        android:textSize="10pt"
        android:id="@+id/txkod"
        android:layout_marginTop="63dp"
        android:layout_centerHorizontal="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="insert code"
        android:textAlignment="center"
        android:layout_marginTop="25dp"
        android:id="@+id/inkod"
        android:layout_below="@+id/txkod"
        android:layout_alignLeft="@+id/txkod"
        android:layout_alignStart="@+id/txkod"
        android:layout_alignRight="@+id/txkod"
        android:layout_alignEnd="@+id/txkod" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Look"
        android:id="@+id/carikod"
        android:layout_below="@+id/inkod"
        android:layout_centerHorizontal="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/codepar"
        android:hint="code part"
        android:layout_below="@+id/namkod"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/nampar"
        android:hint="name part"
        android:layout_below="@+id/nampar"/>

</LinearLayout>

插入数据成功,但读取数据失败。 (基准是指数据*)


我根本不确定下面这些是否会让你行动起来。但是您似乎没有获得视图kodinparin的ID。因此,不妨尝试以下方法:-

 kodin = (EditText) findViewById(R.id.inkod);
 parin = (EditText) findViewById(R.id.nampar);
更详细的代码(未测试和动态编写,因此可能有错误)

如果您正在使用AndroidStudio或IDE进行调试,那么使用它会非常有帮助

    kodcari = (Button) findViewById(R.id.carikod);
    // Adding the following lines may get the correct string
    kodin = (EditText) findViewById(R.id.inkod); //????
    parin = (EditText) findViewById(R.id.nampar); //????
    kodcari.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){

            ckodin = kodin.getText().toString(); //wrong string?
            parin.getText().toString();
            //what should i do? Perhaps the following :-
            lipsar myContact = Look(ckodin !!!!CONVERTED TO INT FROM STRING);
            // whatever else you need to do with the mycontact .....

        }
    });

    partnam = (EditText) findViewById(R.id.namepart);
    dbHandle = new DbHandle(this);


}

方法
lispar
似乎会返回一个contact(我猜是您的单个数据)对象,但从我看到的情况来看,它并没有被调用。也许从您拥有
//我应该做什么?
的地方调用
lispar
,就是您想要做的事情?我建议不要依赖
if(kr!=null)kr.moveToFirst()如果光标未找到任何内容,则光标将不会为空。如果(kr.getCount())==1 kr.moveToFirst(),则可以使用
if。如果光标中没有行,会发生什么?@MikeT:谢谢你,先生,我很抱歉,我对这个错误的理解,我在互联网上的许多教程CRUD中尝试了这个代码,但仍然不起作用。关于
lispar
lispar.java
as
contact.java
。我正在使用
if(kr.getCount())==1 kr.moveToFirst(),但仍不工作。我对这段代码的体验类似于搜索由
kodin
editText调用的单个数据。如果
inputCode
fill&
btnCode
单击
{dbHaldle=show AddSingleData inputName(editText).getText-ToString}
在相同的布局(main.xml&&main.java)中,我在上面的帖子中说了lipsar而不是Look。@MikeT谢谢你的提示,先生,在这种情况下,也许我必须从头开始重新构建我的代码,我构建的最后一个代码花了我2个月的时间,但仍然失败。谢谢你的提示,先生,也许我必须从头开始重新构建代码,我会尝试你的代码