2014-06-17 147 views
0

我在我的应用程序内创建了一个SQLite数据库。我试图在TextView(android)中显示内容,但是我有任何问题。SQLiteException:无法识别的令牌

数据库:

CREATE TABLE "1_BASICA_1500" ("INDICACIONES" TEXT, "LUNES" TEXT, "MARTES" TEXT, 
"MIERCOLES" TEXT, "JUEVES" TEXT, "VIERNES" TEXT, "SABADO" TEXT, "DOMINGO" TEXT, 
"_ID" NUMERIC PRIMARY KEY NOT NULL)" 

我Database.class

public class MyDataBase extends SQLiteAssetHelper { 
    private static final String DATABASE_NAME = "dietas.sqlite"; 
    private static final int DATABASE_VERSION = 1; 

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

    public Cursor getDieta() { 

    SQLiteDatabase db = getReadableDatabase(); 
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); 

    String [] sqlSelect = {"INDICACIONES", "LUNES", "MARTES", "MIERCOLES", "JUEVES", "VIERNES", "SABADO", "DOMINGO","_ID"}; 
    String sqlTables = "1_BASICA_1500"; 

    qb.setTables(sqlTables); 
    Cursor c = qb.query(db, sqlSelect, null, null, 
      null, null, null); 

    c.moveToFirst(); 
    return c; 

    } 
} 

类展示内容:

public class DietaFragment extends Fragment { 
    Bundle paquete; 
    TextView txtDieta; 
    String nombre; 
    MyDataBase db; 
    Cursor cursor; 

    public DietaFragment(Bundle pack) { 
    // TODO Auto-generated constructor stub 
    paquete = pack; 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_dieta, container, false); 
    txtDieta = (TextView) rootView.findViewById(R.id.txtDieta); 
    db = new MyDataBase(this.getActivity()); 

    cursor = db.getDieta(); 

    //nombre = paquete.getString("nombre"); 

    txtDieta.setText(cursor.getString(0)); 
    return rootView; 
    } 
} 

这里是错误:

06-17 12:02:58.933: W/System.err(1630): android.database.sqlite.SQLiteException: 
unrecognized token: "1_BASICA_1500" (code 1): , while compiling: SELECT INDICACIONES, 
LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO, _ID FROM 1_BASICA_1500 

如果可以帮我请,谢谢收看!

回答

4

表名不能以数字开头,除非使用转义符号。

尝试

String sqlTables = "[1_BASICA_1500]"; 
+0

感谢我改名字,但现在我有其他错误:(1)没有这样的表:BASICA1 – Phantomluffy

+0

@Phantomluffy你实际创建BASICA1表?注意:要确保再次创建数据库,请增加DATABASE_VERSION。 – matiash

+1

对不起,我在那个菜鸟:(现在我有其他问题 升级数据库dietas.sqlite从版本1到2 ... 缺少数据库升级脚本:databases/dietas.sqlite_upgrade_1-2.sql 没有升级脚本路径从1到2 无法打开dietas.sqlite写入(将尝试只读): – Phantomluffy

相关问题