Android SQLite获取单个数据(*单个数据)(更新post)
我是Android的初学者。请帮助我解决这个简单的问题:从SQLite检索单个数据 案例1: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,
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>
插入数据成功,但读取数据失败。
(基准是指数据*)
我根本不确定下面这些是否会让你行动起来。但是您似乎没有获得视图kodin和parin的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
ascontact.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个月的时间,但仍然失败。谢谢你的提示,先生,也许我必须从头开始重新构建代码,我会尝试你的代码