我有一个方法,如果检查两个文本字段,然后重新调整记录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) 首先,这里所有类似的帖子都没有帮助.
在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应用程序.
单击该按钮记录该单击的日期和时间(在sqlite中).
我想知道该记录的最佳格式是什么,保留一长串或一串日期时间.
目的是生成以下报告:
1.按小时分组的所选日期的点击总和.
2.按天分组的所选周数的总和.
3.按周分组的所选月份的点击总和.
4.按月分组的所选年份的点击总和.
如何创建此类数据库以及如何进行此类查询?
我确实从该链接获得了有关如何检索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) 我正在扩展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应用程序,所以也许有一些我忽略或不理解的东西.无论如何,这是我的代码.
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) 我有一个查询,它在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)
我想要数据的副本,就像在数组列表中的表一样
在创建数据库以保存标题,内容并按日期降序排序时,我没有得到这样的列异常,我已经多次检查并且无法知道原因.我的代码是
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) 我们可以按照以下两种方法抛出数据库
/**
* 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) 我正在使用登录/注册应用程序进行培训,因为我是一个初学者,除了一个小问题之外,其他所有功能都可以正常工作,但是我不知道如何解决它,我尝试了搜索,但是在这里找不到任何内容我的数据库
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) android ×10
android-sqlite ×10
sqlite ×5
android-mms ×1
android-room ×1
arraylist ×1
cursor ×1
database ×1
date ×1
java ×1
kotlin ×1
sql ×1
textview ×1
where-clause ×1