«таблица не существует» ошибка с sqlite - PullRequest
2 голосов
/ 28 мая 2011

У меня проблема с доступом к базе данных в Android.Сначала я создал класс активности для создания таблицы в базе данных.Затем я назвал эту деятельность из другого.Теперь при компиляции я застрял с ошибкой, что таблица не существует.Вот код.

первый класс: -

package bivin.hello;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Toast;


public class main1 extends Activity {
      @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Intent i=new Intent();
        startActivity(i);
        SQLiteDatabase db;
        db=(SQLiteDatabase)openOrCreateDatabase("bivin.db",  SQLiteDatabase.OPEN_READONLY,null);

        Cursor cur=db.query("emp", null, null, null, null,null,null);
        db.beginTransaction();
        cur.moveToPosition(1);

      db.close();

и активность вызова

package com.example.android.apis;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class createtable extends Activity
{
    public void onCreate(Bundle b)
    {
        super.onCreate(b);
        SQLiteDatabase db;
        db=openOrCreateDatabase("bivin.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
        db.execSQL("create table emp(name text,password text;");
        ContentValues c=new ContentValues();
        c.put("name", "Bivin");
        c.put("password", "Ravindran");

        db.insert("emp",null,c);
        db.close();
        }
    }

    }
}

Ответы [ 2 ]

0 голосов
/ 28 мая 2011

ваш тип данных неверен, используйте varchar instread текста

SQLiteDatabase sampleDB = null;
String PhoneNumber;
String UserId;
Cursor c;
ArrayList ar=new ArrayList();
public void createDatabse(String DbName,Context context)
{

    sampleDB =  context.openOrCreateDatabase(DbName, context.MODE_WORLD_READABLE,null);

}

public void createUserIdTable(String Tablename,Context context)
{
    sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
            Tablename +
            " (User_Id VARCHAR);");

}

public void insertDataUser(String tableName,String User_Id)
{

     sampleDB.execSQL("INSERT INTO " +
             tableName +
             " Values ('"+User_Id+"');");


}

public String GetUserData(Context context,String tablename)
{
            c = sampleDB.rawQuery("SELECT User_Id FROM " +
                tablename +
                "", null);

            if(c!=null)
            {
                if(c.moveToFirst())
                {
                    do
                    {
                        UserId=c.getString(c.getColumnIndex("User_Id"));

                    }while(c.moveToNext());



                    }   

                }       

            return UserId;
}

public void close()
{
    sampleDB.close();

}
0 голосов
/ 28 мая 2011

Очевидно, что создаваемый onCreate должен быть выполнен до onCreate в main1.Таблица создается позже, следовательно, ошибка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...