2016-08-08 15 views
-1

基本データベースを作成して3人のユーザーを挿入しようとしていますが、機能しません。データベースに作成して挿入する

これは、データベース

package com.example.matadoor.db1; 

import android.content.Context; 
import android.database.DatabaseErrorHandler; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

/** 
* Created by matadoor on 06/08/2016. 
*/ 
public class dbcreat extends SQLiteOpenHelper { 

    public final String tbname="t1"; 
    public final String cid="id"; 
    public static String cid2="test"; 
    public final String user="username"; 

    public final String creat="CREATE TABLE "+cid2+"("+cid+"INTEGER primery key AUTO_INCREMENT , "+user+" TEXT); "; 

    public dbcreat(Context context) { 
     super(context,cid2,null, 1); 
    } 

    public dbcreat(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { 
     super(context, name, factory, version, errorHandler); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(creat); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)  { 

} 

を作成し、それがデータベースを扱う他のクラスのクラスである - それに

package com.example.matadoor.db1; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 

/** 
* Created by matadoor on 08/08/2016. 
*/ 
public class dbhandler { 

    private dbcreat dbc; 
    private SQLiteDatabase sdb; 

    public dbhandler(Context context) 
    { 
     dbc=new dbcreat(context); 
    } 

    public void open() 
    { 
     sdb=dbc.getWritableDatabase(); 
    } 

    public void close(){ 
     dbc.close(); 
    } 

    public String display(int row) 
    { 
     Cursor cu=sdb.query(dbc.tbname,null,null,null,null,null,null); 
     cu.moveToPosition(row); 
     String user=cu.getString(1); 
     return user; 
    } 


    public void insert(String user) 
    { 
     ContentValues cn=new ContentValues(); 
     cn.put(dbc.user,user); 
    } 
} 

そしてメインクラスを開き、それを閉じ、および挿入DBにユーザーを挿入するボタンが1つあります

package com.example.matadoor.db1; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class Main extends AppCompatActivity { 

    Button btn; 
    dbhandler db; 

    dbcreat dbc; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     btn=(Button)findViewById(R.id.ins); 

     // dbc.getWritableDatabase(); 
     db.open(); 

     db=new dbhandler(this); 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       String [] user={"ali","reza","ahmed"}; 

       for(int i=0;i<user.length;i++) 
       { 
        db.insert(user[i]); 
       } 
      } 
     }); 

    } 
} 
+0

申し訳ありませんが、あなたは**何が**動作しないかについてより具体的にする必要があります。エラーはありますか?もしそうなら、質問を編集してください –

答えて

0

これはエラーのようです。これらの2つの行を切り替える必要があります。

このコードでは他にエラーがないと仮定すると、このメソッドはデータベースに対して何もしません。

public void insert(String user) 
{ 
    ContentValues cn=new ContentValues(); 
    cn.put(dbc.user,user); 
} 

あなたはそのcn変数とsdb.insertを呼び出す必要があります。

+0

ありがとう – alighorbani

関連する問題