我正在尝试仅查询表中的第一个数据.
Cursor img_cursor = db.query(
IMAGE_URL_TABLE_NAME,
new String[]{"small_img_url" , "large_img_url"},
null",
null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
有人能告诉我如何实现只从表中检索第一个数据的查询吗?
我想我解决了答案:
Cursor img_cursor = db.query(
IMAGE_URL_TABLE_NAME,
new String[]{"small_img_url" , "large_img_url"},
null",
null, null, null, null , "1");
Run Code Online (Sandbox Code Playgroud)
我limit 1先用过,但应用程序崩溃了.只有当我将数字作为String遗嘱传递时才有效.当我们使用limit参数时,查询有8个参数.
我正在创建一个数据库,我正在插入一行,如下所示:
/* Add two DataSets to the Table. */
myDB.execSQL("INSERT INTO "
+ MY_DATABASE_TABLE
+ " (LastName, FirstName, Country, Age)"
+ " VALUES ('Gramlich', 'Nicolas', 'Germany', 20);");
myDB.execSQL("INSERT INTO "
+ MY_DATABASE_TABLE
+ " (LastName, FirstName, Country, Age)"
+ " VALUES ('Doe', 'John', 'US', 34);");
Run Code Online (Sandbox Code Playgroud)
关于上面的代码我有两个问题:
如何禁止重复记录?我想在插入时检查传入的数据.我怎样才能做到这一点?我应该用IF NOT EXISTS吗?
如何检查该数据库是否可用?到目前为止,没有任何成功,我尝试过:
private static String DB_PATH = "/data/data/YOUR_PACKAGE/databases/myDBName";
private static String DB_NAME = "myDBName";
private boolean checkDataBase() {
SQLiteDatabase checkDB = null;
try {
checkDB = SQLiteDatabase.openDatabase(DB_PATH, null, …Run Code Online (Sandbox Code Playgroud)我的应用程序中有一个数据库,我使用一个表单使用edittext输入数据,完成后,用户将单击提交.我点击之前输入的列表数据之一到另一个活动,以显示之前输入的数据,它会强制关闭.我不知道我的错在哪里,这是我的数据库:
class DBSpaj extends SQLiteOpenHelper {
private static final String DATABASE_NAME="dbspaj.db";
private static final int SCHEMA_VERSION=1;
public DBSpaj(Context context) {
super(context, DATABASE_NAME, null, SCHEMA_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("DROP TABLE IF EXISTS table_spaj");
db.execSQL("CREATE TABLE if not exists table_spaj (_id INTEGER PRIMARY KEY AUTOINCREMENT," +
" agama TEXT,"+
" agamatt TEXT,"+
" alamat TEXT,"+
" alamat_tt TEXT,"+
" alamat_tagihan TEXT,"+
" alamat_tagihan_tt TEXT,"+
" alamatkantor TEXT,"+
" curenttime TEXT," +
}
@Override
public void onUpgrade(SQLiteDatabase db, int …Run Code Online (Sandbox Code Playgroud) 我试图从我的数据库中获取数据.
这是我的代码:
String[] columns = new String[] {COLUMN_FACEBOOK_ALBUM_COVER, COLUMN_FACEBOOK_ALBUM_IS_ACTIVE};
String whereClause = COLUMN_FACEBOOK_ALBUM_IS_ACTIVE + "= '" + 1 + "'";
Cursor cAlbum = ourDatabase.query(TABLE_FACEBOOK, columns, whereClause,null, null, null, null);
columns = new String[] {COLUMN_FACEBOOK_BIG_IMAGE, COLUMN_FACEBOOK_IMAGE_IS_ACTIVE};
whereClause = COLUMN_FACEBOOK_IMAGE_IS_ACTIVE + "= '" + 1 + "'";
Cursor cImage = ourDatabase.query(TABLE_FACEBOOK_IMAGES, columns, null,null, null, null, null);
String[] list = new String[cAlbum.getCount()+cImage.getCount()];
int p = 0;
if(cAlbum.getCount() < 1 && cImage.getCount() < 1)
{
cAlbum.close();
cImage.close();
return null;
}
Log.i("cImage length", cImage.getCount()+"");
Log.i("cAlbum …Run Code Online (Sandbox Code Playgroud) 我有FragmentPagerAdapter的问题.
我无法保存片段的状态,然后在片段中有视图.每当我使用左右滑动时,通过覆盖扩展FragmentPagerAdapter的静态类中的方法getItem(int position)来重新创建Fragment.
public static class GraphicsCollectionPagerAdapter extends FragmentPagerAdapter {
final int NUM_ITEMS = 3; // number of tabs
public GraphicsCollectionPagerAdapter(FragmentManager fm) {
super(fm);
fragmentList = new AnalyzeFragmentPageListWithDate();
fragment1 = new AnalyzeFragmentPage1();
fragment2 = new AnalyzeFragmentPage2();
}
@Override
public Fragment getItem(int position) {
//Log.i(TAG, "getItem() -> New fragment at position " + position);
switch (position) {
case 0:
return fragmentList;
case 1:
return fragment1;
case 2:
return fragment2;
}
return null;
}
@Override
public int getCount() {
return 3;
} …Run Code Online (Sandbox Code Playgroud) java android android-fragments fragmentpageradapter android-sqlite
我的Java代码更新数据库表
String qq="UPDATE ChallanItems SET Recieve ="+str+" WHERE ItemNo = "+code;
Log.d("Qry", qq);
myDbHelper.updatequery(qq);
Run Code Online (Sandbox Code Playgroud)
updatequery方法
public void updatequery(String qry)
{
Cursor c = myDataBase.rawQuery(qry, null);
Log.d("Up", ""+c.getCount());
}
Run Code Online (Sandbox Code Playgroud)
当我更新数据库时,计数返回0并且表未更新
我正在使用这个但是没有工作
String qq="UPDATE ChallanItems SET Recieve ="+str+" WHERE ItemNo = "+"'"+code+"'";
Run Code Online (Sandbox Code Playgroud)
请帮助我如何解决这个问题
提前致谢
错误信息:
android.database.sqlite.SQLiteException: near "transaction": syntax error (code 1): , while compiling: **create table transaction ( _id integer primary key autoincrement, amount real, type varchar(20), date integer)
Run Code Online (Sandbox Code Playgroud)
我的应用程序存储由自动生成的ID,花费的金额,付款类型和日期组成的货币交易.我的应用程序编译正常,但是当我尝试运行数据库是sqlite数据库的活动时,应用程序崩溃了上面的消息.至于我意识到我的SQL语句是有效的,任何人都可以提供任何可能是原因的洞察力吗?
Java代码:
db.execSQL("create table transaction (" +
" _id integer primary key autoincrement, amount real, type varchar(20), date integer)");
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在尝试进行查询以更新表的最后一行。这是我正在使用的查询:
String updateQuery = "Update table set col = '"+ bla +"' where id=SELECT max(id)";
Run Code Online (Sandbox Code Playgroud)
但这给出了平均错误。.我知道如何更新SQL中的最后一行,但我无法在SQLITE中弄清楚。我想念什么?
我正在尝试通过帐户类型从原始联系人中检索电话号码.使用下面的代码段,
String SELECTION =
ContactsContract.RawContacts.ACCOUNT_TYPE + "='" + Constants.ACCOUNT_TYPE + "'";
ContentResolver cr = this.getContentResolver();
Cursor cur = cr.query(ContactsContract.RawContacts.CONTENT_URI,
null, SELECTION, null, ContactsContract.Contacts.DISPLAY_NAME + " ASC");
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String type = cur.getString(cur.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
//String phone = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.e("number",name);
// hasPhoneNumber(cur.getString(cur.getColumnIndex(ContactsContract.RawContacts._ID)));
}
cur.close();
}
Run Code Online (Sandbox Code Playgroud)
我可以检索绑定到帐户类型的所有联系人,但是,hasPhoneNumber(String contactId)返回一个空光标.
private boolean hasPhoneNumber(String id) {
Cursor pCur = this.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while (pCur.moveToNext()) {
String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); …Run Code Online (Sandbox Code Playgroud) App Database的Items表的价格为Long数据类型为Long。Db版本= 1
CREATE TABLE items (_id INTEGER PRIMARY KEY AUTOINCREMENT,item_id
INTEGER,title TEXT,price LONG, UNIQUE (item_id) ON CONFLICT IGNORE)
Run Code Online (Sandbox Code Playgroud)
尝试迁移到Room时遇到以下问题
java.lang.IllegalStateException: Migration didn't properly handle items(moka.pos.test.data.entity.Item).
Expected : price=Column{name='price', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0}
Found : price=Column{name='price', type='LONG', affinity='1', notNull=false, primaryKeyPosition=0}
Run Code Online (Sandbox Code Playgroud)
这是我的实体类
@Entity(tableName = "items")
public class Item {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "_id")
private Integer _ID;
@ColumnInfo(name = "item_id")
private Integer id;
@ColumnInfo(name = "title")
private String title;
@ColumnInfo(name = "price") …Run Code Online (Sandbox Code Playgroud)