Android:SQLite在数据库中的插入

Android:SQLite在数据库中的插入,android,sqlite,Android,Sqlite,我无法插入数据库,这段代码有什么问题。提前谢谢 public long insertGrille(Grille grille) { ContentValues values = new ContentValues(); //values.put(COL_ID, grille.getId()); values.put(COL_X, grille.getxCoordinate()); Log.i("COL_X, grille.getxCoordinate()", gr

我无法插入数据库,这段代码有什么问题。提前谢谢

public long insertGrille(Grille grille) {
    ContentValues values = new ContentValues();
    //values.put(COL_ID, grille.getId());
    values.put(COL_X, grille.getxCoordinate());
    Log.i("COL_X, grille.getxCoordinate()", grille.getxCoordinate() + "");
    values.put(COL_Y, grille.getyCoordinate());
    values.put(COL_SSID, grille.getSsid());
    values.put(COL_RSSI, grille.getrssi());
    Log.i("insertion", values + "");
    Log.i("insertion", grille.getxCoordinate() + "");
    Log.i("insertion", bdd.insert(TABLE_RSSI, null, values) + "");
    return bdd.insert(TABLE_RSSI, null, values);
}
创建数据库:

public class MaBaseSQLite extends SQLiteOpenHelper{

private static final String TABLE_RSSI = "table_rssi";
private static final String COL_ID = "ID";
private static final String COL_X = "Xcoordinate ";
private static final String COL_Y = "Ycoordinate ";
private static final String COL_SSID = "SSID";
private static final String COL_RSSI = "RSSI";

private static final String CREATE_BDD = " CREATE TABLE " + " TABLE_RSSI " + " ("   + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_X + " TEXT NOT NULL, " + COL_Y + " TEXT NOT NULL, " + COL_SSID + " TEXT NOT NULL, " + COL_RSSI + " TEXT NOT NULL);";  


public MaBaseSQLite(Context context, String name, CursorFactory factory,
        int version) {
    super(context, name, factory, version);
    // TODO Auto-generated constructor stub
}


@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    db.execSQL(CREATE_BDD);
    Log.i("base créee","base créee");

}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    db.execSQL("DROP TABLE" +  TABLE_RSSI + ";");
    onCreate(db);
}
} 编辑

  case R.id.button1:
        Grille grille = new Grille(xCoordinate, yCoordinate, ssid, rssi);

        //livre.setIsbn(isbn);
        //livre.setTitre(titre);
        GrillePuissanceBDD liv = new GrillePuissanceBDD(getApplicationContext());
        liv.open();
        liv.insertGrille(grille);
        Log.i("grille***", grille + "");
        Log.i("getxCoordinate***", grille.getxCoordinate() + "");
        Grille livreFromBdd = liv.getGrilleWithTitre(grille.getxCoordinate());
        Log.i("livreFromBdd", livreFromBdd + "");
        if (livreFromBdd != null) {
            Toast.makeText(this, livreFromBdd.toString(), Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this, "Prbleme", Toast.LENGTH_LONG).show();
        }
        liv.close();
        break;
我没有收到错误,这是堆栈跟踪:

    04-16 04:47:34.700: I/creation base(9205): creation
04-16 04:47:34.860: I/COL_X, grille.getxCoordinate()(9205): xCoordinate
04-16 04:47:34.880: I/insertion(9205): Ycoordinate=yCoordinate RSSI=ssid Xcoordinate =xCoordinate SSID=rssi
04-16 04:47:34.880: I/insertion(9205): xCoordinate
04-16 04:47:34.990: I/insertion(9205): 29
04-16 04:47:35.020: I/grille***(9205): ID :0
04-16 04:47:35.020: I/grille***(9205): SSID : rssi
04-16 04:47:35.020: I/grille***(9205): X : xCoordinate
04-16 04:47:35.020: I/grille***(9205): Y : yCoordinate
04-16 04:47:35.020: I/grille***(9205): Puissance : ssid
04-16 04:47:35.020: I/getxCoordinate***(9205): xCoordinate
04-16 04:47:35.040: I/Cursor c(9205): android.database.sqlite.SQLiteCursor@41757ca8
04-16 04:47:35.110: I/c.getCount()(9205): 0
04-16 04:47:35.110: I/Cursor(9205): null
04-16 04:47:35.140: I/cursorTest(9205): ID :1
04-16 04:47:35.140: I/cursorTest(9205): SSID : 
04-16 04:47:35.140: I/cursorTest(9205): X : 
04-16 04:47:35.140: I/cursorTest(9205): Y : 
04-16 04:47:35.140: I/cursorTest(9205): Puissance : 
04-16 04:47:35.150: I/c.getCount()(9205): 0
04-16 04:47:35.150: I/livreFromBdd(9205): null

我真的不明白你写了什么,但从我读到的来看

代码中的这些行显示

private static final String COL_X = "Xcoordinate ";
private static final String COL_Y = "Ycoordinate ";
删除末尾的空格,因为您在
ContentValues


此外,我建议您对方法
open
的访问权限进行更严格的限制(
private
),在方法
insertgrill
中调用
open
,我不太明白您写了什么,但从我读到的内容来看

代码中的这些行显示

private static final String COL_X = "Xcoordinate ";
private static final String COL_Y = "Ycoordinate ";
删除末尾的空格,因为您在
ContentValues


此外,我还建议您对方法
open
的访问进行更严格的限制(
private
),在方法
insertgrill
中调用
open
,实际上并且真正知道代码的错误,这就是为什么我尝试给出一个简单的工作示例以适应您的情况:)

这是一个关于如何将数据插入数据库的简单示例:

让我们以DBHelper为例,我对它做了一些更改(我将所有私有属性都设置为公共)

MaBaseSQLite.java } 然后,让我们创建另一个活动:

MainActivity.java 这是对代码的简单测试:

项目的成功机会:D


如果仍有问题,请告诉我!祝您好运

事实上,我确实知道您的代码到底出了什么问题,这就是为什么我尝试给出一个简单的工作示例,以适应您的情况:)

这是一个关于如何将数据插入数据库的简单示例:

让我们以DBHelper为例,我对它做了一些更改(我将所有私有属性都设置为公共)

MaBaseSQLite.java } 然后,让我们创建另一个活动:

MainActivity.java 这是对代码的简单测试:

项目的成功机会:D



如果仍有问题,请告诉我!祝您好运

演示如何创建db(db helper类)。您会得到什么错误?您可以发布堆栈跟踪吗?在数据库中插入数据之前,您必须先打开数据库。Log cat,始终包括Log cat。@Amina I应该更精确,异常堆栈跟踪。它通常是红色的,表示代码中失败的部分。显示如何创建db(db helper类)。您得到的错误是什么?您可以发布堆栈跟踪吗?在数据库中插入数据之前,您必须先打开数据库。Log cat,始终包括Log cat。@Amina I应该更精确,异常堆栈跟踪。它通常是红色的,表示代码中失败的部分。谢谢,但我想从数据库中得到一些东西我得到一个例外:
原因:android.database.sqlite.SQLiteException:没有这样的表:MyDB(代码1):,编译时:select*from MyDB
我添加了这个代码`Cursor cursorTest=db.rawQuery(“select*from”+“MyDB”,null);cursorTest.moveToFirst();int a=cursorTest.getInt(1);Log.i(“a”,a+”);`顺便说一句,merci:)很抱歉让你感到困惑,实际上“MyDB”不是一个表,它是我给你的数据库起的名字,这个表叫做“table_rssi”,所以如果你想做一个select查询,你需要这样做,“select*FROM tablerssi”或者“从”+表中选择*我不选择*从MyDBVoila j'ai Modifieéle code pour qu'il match ton besoin,我在我的电脑上测试过,它似乎工作得很好,你只需删除旧数据库并再次从scrutch开始,或者只需从手机中卸载应用程序并再次安装,Bonne chance,如果有什么不对劲,请告诉我;)谢谢你…你的人生!!我整个上午都在试着设置我的旧代码,但是你的代码很简单,而且很准确:)随时欢迎你,但不要用(VOU)称呼我。我才22岁:p:D谢谢,但我想从数据库中得到一些东西。我得到一个例外:
原因:android.database.sqlite.SQLiteException:没有这样的表:MyDB(代码1):,编译时:select*from MyDB
我添加了这个代码`Cursor cursorTest=db.rawQuery(“select*from”+“MyDB”,null);cursorTest.moveToFirst();inta=cursorTest.getInt(1);Log.i(“a”,a+);`顺便说一句,谢谢:)很抱歉让你感到困惑,实际上“MyDB”不是一个表,它是我给你的数据库起的名字,这个表叫做“table_rssi”,所以如果你想做一个select查询,你需要这样做,“select*FROM table_rssi”或“select*FROM”+TABLE_RSSI not select*从MyDBVoila j'ai Modifie le code pour qu'il match ton besoin,我在我的电脑上进行了测试,它似乎工作得很好,你只需删除旧数据库并再次从scrutch开始,或者从手机上卸载应用程序并再次安装,Bonne chance,如果有什么不对劲,请告诉我;)谢谢你…你的人生!!我整个上午都在试着设置我的旧代码,但是你的代码很简单,而且很准确:)随时欢迎你,但永远不要跟我说话(VOU)我才22岁:p:D谢谢:)我试着删除Blacks,但仍然是同一个问题。谢谢:)我试着删除Blacks,但仍然是同一个问题。
public class MainActivity extends Activity {

    MaBaseSQLite dbHelper;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //intialisation de DBHelper
        dbHelper = new MaBaseSQLite(this, "MyDB", null, 1);

        //insertion des donnees
        insertGrille("12", "56", "rssi1", "ssid1");
                insertGrille("16", "14", "rssi2", "ssid2");
                insertGrille("10", "13", "rssi3", "ssid3");

        //recuperation des donnees
        getGrilles();

    }

    public void insertGrille(String x, String y, String rssi, String ssid){
        //get Writable DB
        SQLiteDatabase db = dbHelper.getWritableDatabase();

        //Insert Data
        ContentValues values = new ContentValues();

        values.put(MaBaseSQLite.COL_X, x);
        values.put(MaBaseSQLite.COL_Y, y);
        values.put(MaBaseSQLite.COL_RSSI, rssi);
        values.put(MaBaseSQLite.COL_SSID, ssid);

        db.insert(MaBaseSQLite.TABLE_RSSI, null, values);

        Log.i("MyTag", "data inserted");        

    }


    public void getGrilles() {
        //requete de recuperation
        String selectQuery = "SELECT  * FROM " + MaBaseSQLite.TABLE_RSSI;

        //get Readable DB
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        // looping through all rows
        if (cursor.moveToFirst()) {
            do {
                //pour le moment je fais rien d'interessant avec ces donnees :)

                Log.i("MyTag", "grille.x= " + cursor.getString(1));
                Log.i("MyTag", "grille.y= " + cursor.getString(2));
                Log.i("MyTag", "grille.rssi= " + cursor.getString(3));
                Log.i("MyTag", "grille.ssid= " + cursor.getString(4));

            } while (cursor.moveToNext());
        }
    }


}