我必须选择地址列的大小/长度(字符数)大于 12 的位置。有人可以帮我解决这个问题吗?
String selection = "address LIKE ?";
String[] selection_args = {};
cr- content resolver
Cursor cursor = cr.query(messageUri, null, selection, selection_args, "date DESC");
Run Code Online (Sandbox Code Playgroud) 我正在使用房间。我需要使用 SELETC、INSERT、DELETE 全部。
这就是我实现的:
@Dao
interface UserDao {
@Query("SELECT * FROM user WHERE m_id IN (:m_id)")
fun loadAllByIds(userSeqs: IntArray?): List<User?>?
@Query("SELECT * FROM user")
val all: List<User?>?
}
Run Code Online (Sandbox Code Playgroud)
@Entity(tableName = "user")
data class User (
@PrimaryKey(autoGenerate = true) val seq: Long,
// this name is used in dao as column name
@ColumnInfo(name = "m_id") val mId: String?,
@ColumnInfo(name = "k_id") var kId: String?,
@ColumnInfo(name = "created_at") var createdAt: String?
)
Run Code Online (Sandbox Code Playgroud)
@Database(entities = {User.class}, version = 1, exportSchema = false)
public …Run Code Online (Sandbox Code Playgroud) 我已将名称传递给我的数据库,我想通过该数据库提取该名称的详细信息.我想这样做.我该如何解决?"name"是单击的名称.我想使用此参数来查询数据库并获取此名称的相关信息.
public String getName(String name) {
// TODO Auto-generated method stub
String namereturned = "";
String[] columns = new String[] { KEY_ROWID, KEY_NAME,
KEY_PERSONALPHONE, KEY_HOMEPHONE, KEY_OFFICEPHONE };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_NAME + "="
+ name +"'", null, null, null, null);
if (c != null) {
c.moveToFirst();
return namereturned = c.getString(1);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
登录CAT
10-04 15:15:05.954: E/AndroidRuntime(760): FATAL EXCEPTION: main
10-04 15:15:05.954: E/AndroidRuntime(760): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.contactlist/com.example.contactlist.ViewContact}: android.database.sqlite.SQLiteException: unrecognized token: "'" (code 1): , while …Run Code Online (Sandbox Code Playgroud) 我正在尝试sqlite使用更新表execSQL.但是,执行后它清除(清空)我的整个表数据而不是更新某些字段.我的代码是
private void updatedata(String name,String spingender,String cWeight,String spinunit,String htInString,String spingoal,String spinactivity,String spinexercise,String scalorie,String sprotein,String carbohydrate,String sfat) {
DatabaseHandler helper = new DatabaseHandler(getApplicationContext());
SQLiteDatabase db = helper.getReadableDatabase();
System.out.println("in update data "+name + spingender + cWeight);
String Query = "SELECT * FROM login WHERE name ='"+name+"'";
Cursor QueryCursor = db.rawQuery(Query,null);
// there is some record available in the cursor
if (QueryCursor.moveToFirst()) {
db.execSQL("UPDATE login SET gender='"+spingender+"',weight='"+cWeight+"',userunit='"+spinunit+"',height='"+htInString+"',goal='"+spingoal+"',activeness='"+spinactivity+"',exercise='"+spinexercise+"',calorie='"+scalorie+"',fat='"+sfat+"',carbohydrate='"+carbohydrate+"',protein='"+sprotein+"'");
}
QueryCursor.close();
db.close();
}
Run Code Online (Sandbox Code Playgroud)
完整代码
package com.bharatwellness.mainactivities;
import java.io.ByteArrayOutputStream;
import org.json.JSONObject;
import …Run Code Online (Sandbox Code Playgroud) 引起:android.database.sqlite.SQLiteException:接近"case":语法错误(代码1):,同时编译
在
CREATE TABLE case ( case_id TEXT PRIMARY KEY, case_body TEXT, case_title TEXT, case_published INTEGER, case_thumbnil TEXT,case_type TEXT );
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我是什么问题,我在Android 5.0.2上测试这个
我检查过
Android - SQLite - 语法错误(代码1):,同时编译:CREATE TABLE
还有这个
但无法得到答案
这是我的SQLiteHandler类代码的一部分。
public class SQLiteHandler extends SQLiteOpenHelper implements DataKeyLists {
private static final String TAG = SQLiteHandler.class.getSimpleName();
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "users";
// Login table name
private static final String TABLE_USER = "user";
// query to create a login table
private static final String QUERY_CREATE_LOGIN_TABLE = "CREATE TABLE " + TABLE_USER
+ "("
+ KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_UID …Run Code Online (Sandbox Code Playgroud) 我正在使用一个包含玩家姓名,胜利数量和损失数量的数据库表.
然后我会从主要活动,打开,更新或其他任何内容调用数据库,最后关闭.
这工作得很好.
然后我添加了其他列并继续工作.
但是,我将游戏安装到真实设备上并且无效.
我的模拟器中没有发生这个问题,因为它有点一次又一次地覆盖现有数据库.
我决定从模拟器中取消应用程序,然后停止工作.看起来我的游戏在首次启动时创建新数据库时遇到了一些麻烦.
在做了一些测试之后,我得到了不同的错误,比如"not null constrain"或"CursorIndexOutOfBounds".
因此,我可以说问题在于数据库的创建 - 但我不知道出了什么问题.
我不认为错误是在主Activity中,因为我在那里总是做同样的事以前它曾经工作,但我已经改变了数据库.
也许问题是我在onCreate()函数中初始化值的地方,就像它没有真正给数据库赋值?
无论如何,也许我一直在关注错误的观点,所以我认为新的观点可能有所帮助.
这里有数据库类:
public class DatabaseAdapter {
private final Context context;
public static final String C_COLUMNA_ID = "_id";
public static final String C_COLUMNA_NAME = "menu_player";
public static final String C_COLUMNA_VICTORY = "menu_victory";
public static final String C_COLUMNA_LOSS = "menu_loss";
public static final String C_COLUMNA_POINTS = "menu_points";
public static final String C_COLUMNA_UNLOCKED = "menu_unlocked";
public static final String C_COLUMNA_LEVEL = "menu_level";
private static final String …Run Code Online (Sandbox Code Playgroud) 我已经构建了一个Android应用程序,我insertSampleData()
从onCreate()主要活动的方法调用该方法.
问题是onCreate()每次启动应用程序时都会调用该方法,这会导致我的数据库填充大量样本数据.
我想在安装应用程序时只提供一次示例数据.谁能告诉我怎么做?非常感谢 !
PS:该方法insertSampleData()用于将样本数据插入到Sq-lite数据库中.
我收到了有关正常工作的一段代码的崩溃报告。
异常在insertOrThrow中启动,并且是:“异常android.database.sqlite.SQLiteConstraintException:NOT NULL约束失败:HISTORY.altitude(代码1299)”。
表中所有字段都声明为NOT NULL,特别是HISTORY.altitude字段声明为“ REAL NOT NULL”
我无法理解它为NULL的可能性,因为我在insert命令上填充了几行。
任何人都有可能的想法吗?
synchronized public void addSample( long time, int method, float altitude, int accuracy )
{
...
ContentValues cv = new ContentValues();
long day = new TimeUtils.Day(time).getMillis();
cv.put(MetaData.COLUMN_DAY, day);
cv.put(MetaData.COLUMN_TIME, time);
cv.put(MetaData.COLUMN_ALTITUDE, altitude);
cv.put(MetaData.COLUMN_METHOD, method);
cv.put(MetaData.COLUMN_ACCURACY, accuracy);
long id = latestSample.mId;
id = mDb.insertOrThrow(MetaData.TABLE_NAME, null, cv); // <--- Here crash
...
}
Run Code Online (Sandbox Code Playgroud)
这里是用来定义表格的代码:
/* Inner class that defines the table contents */
public static abstract class MetaData implements BaseColumns
{
public static …Run Code Online (Sandbox Code Playgroud) 现在我正在学习Android开发,在关注我的书时,我只是想知道为什么在SQLite列名中使用大写字母?
db.execSQL("CREATE TABLE DRINK (_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "NAME TEXT, "
+ "DESCRIPTION TEXT, "
+ "IMAGE_RESOURCE_ID INTEGER);")
Run Code Online (Sandbox Code Playgroud)
通常,我使用小写字母和_仅用于Web开发.
有什么理由吗?像代码标准?