0

行の 1 つの列だけを更新しようとしていますが、何らかの理由でその列が存在しないというメッセージが引き続き表示されます。

コンテンツ プロバイダー

    @Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
    SQLiteDatabase db = ucdb.getReadableDatabase();
    final int match = ContentDescriptor.URI_MATCHER.match(uri);
    int rowsUpdated = 0;
    switch(match){
    case ContentDescriptor.U.PATH_TOKEN:{
        rowsUpdated = db.update(ContentDescriptor.T1.NAME, values, selection, selectionArgs);
    }
    case ContentDescriptor.R.PATH_TOKEN:{
        rowsUpdated = db.update(ContentDescriptor.T2.NAME, values, selection, selectionArgs);
    }
    case ContentDescriptor.Q.PATH_TOKEN:{
        rowsUpdated = db.update(ContentDescriptor.T3.NAME, values, selection, selectionArgs);
    }
    case ContentDescriptor.S.PATH_TOKEN:{
        rowsUpdated = db.update(ContentDescriptor.T4.NAME, values, selection, selectionArgs);
    }
    case ContentDescriptor.E.PATH_TOKEN:{
        rowsUpdated = db.update(ContentDescriptor.T5.NAME, values, selection, selectionArgs);
    }
    }
    return rowsUpdated;
}

クエリを更新

ContentValues val = new ContentValues();
            val.put(ContentDescriptor.U.Cols.q, newQ);

            contentResolver.update(ContentDescriptor.U.CONTENT_URI, val,
                    ContentDescriptor.U.Cols.UID + "='" + uId + "'", null);
4

1 に答える 1

2

スイッチャーにはブレークまたは return ステートメントが必要でした。

于 2013-06-19T14:35:35.683 に答える