标签: android-sqlite

"WHERE"附近:语法错误 - SQLite

我有一个方法,如果检查两个文本字段,然后重新调整记录ID.我的方法看起来像这样:

int getQueryMatch(String word, String meter) {
    SQLiteDatabase db = this.getReadableDatabase();

    String selectQuery = "SELECT *  FROM " + TABLE_HISTORY + " WHERE " + QUERYWORD +  "= '" + word + "' AND WHERE " + DISTANCEQ + "= '"+ meter +"' "  ;
    Cursor cursor = db.rawQuery(selectQuery, null);
    int getidd = cursor.getColumnIndex(KEY_ID) ;


    Log.v("Match query ", "return? " + getidd );
    if (cursor != null)
        cursor.moveToFirst();

    // return History
    return getidd;
}
Run Code Online (Sandbox Code Playgroud)

我的表看起来像这样:

    String CREATE_HISTORYS_TABLE = "CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

sqlite android where-clause android-sqlite

1
推荐指数
2
解决办法
7804
查看次数

为什么SQLiteOpenHelper导致IllegalArgumentException数据库无法打开?

首先,这里所有类似的帖子都没有帮助.

在AsyncTask中,我检查应用程序启动是否是第一次启动,这意味着我检查是否有数据库.我希望通过表格查询来做到这一点.这是正在执行的内容:

@Override
public List<Entity> loadAll(Entity markerEntity)
{
    Log.i(TAG, "trying to load all entities of type " + markerEntity.getTable());

    List<Entity> results = new LinkedList<Entity>();

    SQLiteDatabase db = defaultSQLiteOpenHelper.getWritableDatabase();

    Cursor cursor = db.query(markerEntity.getTable(), markerEntity.getAllColumns(), null, null, null, null, null);    
    cursor.moveToFirst();

    while (!cursor.isAfterLast())
    {
        Entity result = markerEntity.createNewInstance(cursor);
        results.add(result);

        cursor.moveToNext();
    }

    db.close();

    return results;
}
Run Code Online (Sandbox Code Playgroud)

IllegalArgumentException崩溃:数据库未打开发生在此行上.

SQLiteDatabase db = defaultSQLiteOpenHelper.getWritableDatabase();
Run Code Online (Sandbox Code Playgroud)

它恰好发生在方法(见下文)createAllTables上.

文件说:

创建和/或打开将用于读写的数据库.第一次调用它时,将打开数据库并调用onCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase,int,int)和/或onOpen(SQLiteDatabase).

在我看来,它应该执行我的DefaultSQLiteOpenhelper并创建所有数据库表,但它不会这样做:

public class DefaultSQLiteOpenHelper extends SQLiteOpenHelper implements ISQLiteOpenHelper
{
    private static …
Run Code Online (Sandbox Code Playgroud)

android sqliteopenhelper android-sqlite

1
推荐指数
1
解决办法
1939
查看次数

SQLite group by/count小时,天,周,年

假设我们有一个只有一个按钮的简单Android应用程序.
单击该按钮记录该单击的日期和时间(在sqlite中).
我想知道该记录的最佳格式是什么,保留一长串或一串日期时间.
目的是生成以下报告:
1.按小时分组的所选日期的点击总和.
2.按天分组的所选周数的总和.
3.按周分组的所选月份的点击总和.
4.按月分组的所选年份的点击总和.

如何创建此类数据库以及如何进行此类查询?

sqlite android android-sqlite

1
推荐指数
1
解决办法
6315
查看次数

如何从content:// mms中检索彩信的日期。

我确实从该链接获得了有关如何检索mms的文本和图像的信息:如何在Android中读取MMS数据?

但是我不确定如何检索发送的彩信的日期。

我知道我必须研究content:// mms而不是content:// mms / part。

这是检索mms文本的方法:

private String getMmsText(String id) {
        Uri partURI = Uri.parse("content://mms/part/" + id);
        InputStream is = null;
        StringBuilder sb = new StringBuilder();
        try {
            is = getContentResolver().openInputStream(partURI);
            if (is != null) {
                InputStreamReader isr = new InputStreamReader(is, "UTF-8");
                BufferedReader reader = new BufferedReader(isr);
                String temp = reader.readLine();
                while (temp != null) {
                    sb.append(temp);
                    temp = reader.readLine();
                }
            }
        } catch (IOException e) {
        } finally {
            if (is != null) {
                try …
Run Code Online (Sandbox Code Playgroud)

android date textview android-sqlite android-mms

1
推荐指数
1
解决办法
1991
查看次数

无法使用SQLiteAssetHelper类复制数据库

我正在扩展SQLiteAssetHelper类以使用我的资源文件夹中的预填充数据库,但我的应用程序崩溃并发出错误说Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database.

当我签入时ddms,没有数据库文件夹或我的db文件data/data/com.sqlitetospinner1/.因此,为了测试,我创建了一个名为的文件夹并将databasesdb文件推入其中.在此之后,应用程序开始完美运行.

这意味着我的AssetsHelper班级无法复制数据库.

AssetsHelper 类:-

public class AssetsHelper extends SQLiteAssetHelper {

private static final String DATABASE_NAME = "mydb.sqlite";
private static final int DATABASE_VERSION = 1;

public AssetsHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);

}


public List<String> getAllColleges(){
    List<String> colleges = new ArrayList<String>();

    // Select All Query
    String selectQuery = "SELECT * FROM colleges_list ORDER BY Organization_Name"; …
Run Code Online (Sandbox Code Playgroud)

android android-assets android-sqlite

1
推荐指数
1
解决办法
3402
查看次数

SQLiteException:没有这样的表?

首先,我已经检查了其他类似的线程,但似乎没有什么对我有用.但是,这是我的第一个Android应用程序,所以也许有一些我忽略或不理解的东西.无论如何,这是我的代码.

MyContentProvider.java

 @SuppressWarnings("ConstantConditions")
public class MyContentProvider extends ContentProvider {

private DbHelper dbHelper;

private static final String BASE_PATH_ITEM = "items";
private static final String AUTHORITY = "data.MyContentProvider";
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/" + BASE_PATH_ITEM);
private static final int ITEM = 100;
private static final int ITEMS = 101;


private static final UriMatcher URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
static {
    URI_MATCHER.addURI(AUTHORITY, BASE_PATH_ITEM, ITEM);
    URI_MATCHER.addURI(AUTHORITY, BASE_PATH_ITEM + "/#", ITEMS);


}

private void checkColumns(String[] projection) {
    if (projection != …
Run Code Online (Sandbox Code Playgroud)

java sqlite android android-sqlite

1
推荐指数
1
解决办法
570
查看次数

将游标数据复制到arraylist中

我有一个查询,它在android sqlite中填充数据库表规则中的光标.当我使用getcount我的光标时,它显示我24,这意味着光标中有24行.我想要的是游标中的所有数据应该被复制到多维数组或arraylist,或者换句话说,数据库表的副本被复制到数组列表中.

c = obj_db.rawQuery("select * from rules", null);
int count=c.getCount();
String x= String.valueOf(count);
Run Code Online (Sandbox Code Playgroud)

我想要数据的副本,就像在数组列表中的表一样

sqlite android arraylist cursor android-sqlite

1
推荐指数
2
解决办法
8484
查看次数

SQLite没有这样的专栏

在创建数据库以保存标题,内容并按日期降序排序时,我没有得到这样的列异常,我已经多次检查并且无法知道原因.我的代码是

public void onCreate(SQLiteDatabase sqLiteDatabase) {
    //create our table
    String CREATE_WISHES_TABLE = "CREATE TABLE " + Constants.TABLE_NAME + "(" +
                                  Constants.KEY_ID + " INTEGER PRIMARY KEY, " +
                                Constants.TITLE_NAME + " TEXT, " +
                                Constants.CONTENT_NAME + " TEXT, " +
                                Constants.DATE_NAME + "  LONG);";
    sqLiteDatabase.execSQL(CREATE_WISHES_TABLE);

}
Run Code Online (Sandbox Code Playgroud)

我的查询语句如下:

public ArrayList<MyWish> getWishes() {

    String selectQuery = "SELECT * FROM " + Constants.TABLE_NAME;

    SQLiteDatabase sqLiteDatabase = this.getReadableDatabase();

    Cursor cursor = sqLiteDatabase.query(Constants.TABLE_NAME, new String[]{Constants.KEY_ID, Constants.TITLE_NAME, Constants.CONTENT_NAME,
                    Constants.DATE_NAME}, null, null, null, null, Constants.DATE_NAME + "DESC"); …
Run Code Online (Sandbox Code Playgroud)

sql database android android-sqlite

1
推荐指数
1
解决办法
821
查看次数

房间数据库,inMemoryDatabaseBuilder和databaseBuilder有什么区别?

我们可以按照以下两种方法抛出数据库


 /**
 * Copyright:MyApplication
 * Author: liyang <br>
 * Date:2018/6/15 ??5:07<br>
 * Desc: <br>
 */
@Database(entities = {Pet.class ,User.class}, version = 1)
public abstract class RoomDb extends RoomDatabase {
    private static RoomDb INSTANCE;

    private static final Object sLock = new Object();

    public abstract UserDao getUserDao();

    public abstract PetDao getPetDao();

    public static RoomDb getInstance(Context context) {
        if (INSTANCE == null) {
            synchronized (sLock) {
                if (INSTANCE == null) {
                    INSTANCE = Room.databaseBuilder(context.getApplicationContext(),RoomDb.class,"Sample.db").build();
                }
            }
        }
        return INSTANCE;
    }
    public static RoomDb …
Run Code Online (Sandbox Code Playgroud)

android android-sqlite android-room

1
推荐指数
2
解决办法
2840
查看次数

如何使用Android在Sqlite数据库中找到用户?

我正在使用登录/注册应用程序进行培训,因为我是一个初学者,除了一个小问题之外,其他所有功能都可以正常工作,但是我不知道如何解决它,我尝试了搜索,但是在这里找不到任何内容我的数据库

   fun userPresent (user: String,pass: String):Boolean {
       val db = writableDatabase
       val query = "select * from $TABLE_NAME where username = $user and password = $pass"
       val cursor = db.rawQuery(query,null)

       if (cursor.count <= 0) {
           cursor.close()
           return false }
       cursor.close()
       return true }
Run Code Online (Sandbox Code Playgroud)

mainactivity.kt

if (database.userPresent(user = username,pass = password)) {
                intent.putExtra("text", "Welcome , $username $password")
                startActivity(intent)
                Toast.makeText(this,"Logged In Successfully",Toast.LENGTH_SHORT).show()
            } else {
                Toast.makeText(this,"Wrong Username/Password",Toast.LENGTH_SHORT).show()
            }
Run Code Online (Sandbox Code Playgroud)

我的logCat错误

android.database.sqlite.SQLiteException: no such column: ss (code 1 SQLITE_ERROR): , while compiling: select * …
Run Code Online (Sandbox Code Playgroud)

sqlite android kotlin android-sqlite android-database

1
推荐指数
1
解决办法
81
查看次数