简体   繁体   中英

Android Database Connection insqlite

I am trying to connect the database in android here is code

package com.example.visiting_card;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DataBaseHandler extends SQLiteOpenHelper {

private static String Databasename="contact.db";
private static int version=1;
private String KEY_ID="id";
private String Table_name="contact_details";
private String KEY_NAME="name";
private static String Email="email";
private static String Contact="contact";
private static String Company="company";
private static String address1="address1";
private static String address2="address2";
private static String State="state";

public DataBaseHandler(Context context)
         {
    super(context,Databasename, null, version);
    Log.d("jhgd","sd");
    // TODO Auto-generated constructor stub
        }
@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    String Table_create="create table" + Table_name + " (" + KEY_ID + "   
     INTEGER PRIMARY KEY AUTOINCREMENT," + Email + " text,"
            + Contact +" text," + Company + " text," + address1 + "  
        text," + address2 + " text," + State +" text" + ")";
        db.execSQL(Table_create);
        Log.d("datbase", "datebase created");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    db.execSQL("DROP TABLE IF NOT EXITS " + Table_name);
    Log.d("datbase", "datebase deleted");
    onCreate(db);
}

public void addcontacts(Contact contact){
    SQLiteDatabase db=this.getWritableDatabase();
    ContentValues values=new ContentValues();
    values.put(KEY_NAME, contact.Name);
    values.put(Email, contact.Email);
    values.put(Contact, contact.Contact);
    values.put(Company,contact.Company);
    values.put(address1,contact.address1);
    values.put(address2, contact.addreaa2);
    db.insert(Table_name, null, values);
    Log.d("sds", "inserting");
}

    }

here is the contact.java file

package com.example.visiting_card;

public class Contact {



public static String Name;
public static String Email;
public static String Contact;
public static String Company;
public static String address1;
public static String addreaa2;
public static String State;

    public Contact(String name,String email,String contact,String    
  company,String address1,String address2,String state){
        this.Name=name;
        this.Email=email;
        this.Contact=contact;
        this.Company=company;
        this.address1=address1;
        this.addreaa2=address2;
        this.State=state;

    }

i am getting error below is the logcat error msg

enter code here 
06-30 13:14:43.104: E/AndroidRuntime(941): FATAL EXCEPTION: main
06-30 13:14:43.104: E/AndroidRuntime(941): Process: com.example.visiting_card, PID: 941
06-30 13:14:43.104: E/AndroidRuntime(941): android.database.sqlite.SQLiteException:   
near "tablecontact_details": syntax error (code 1): , while compiling: create  
tablecontact_details (id INTEGER PRIMARY KEY AUTOINCREMENT,email text,contact 
text,company text,address1 text,address2 text,state text)
06-30 13:14:43.104: E/AndroidRuntime(941):  at  
android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
06-30 13:14:43.104: E/AndroidRuntime(941):  at   

android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889 ) 06-30 13:14:43.104: E/AndroidRuntime(941): at
android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500) 06-30 13:14:43.104: E/AndroidRuntime(941): at
android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 06-30 13:14:43.104: E/AndroidRuntime(941): at android.database.sqlite.SQLiteProgram.
(SQLiteProgram.java:58) 06-30 13:14:43.104: E/AndroidRuntime(941): at
android.database.sqlite.SQLiteStatement. (SQLiteStatement.java:31) 06-30 13:14:43.104: E/AndroidRuntime(941): at
android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1672) 06-30 13:14:43.104: E/AndroidRuntime(941): at
android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1603) 06-30 13:14:43.104: E/AndroidRuntime(941): at
com.example.visiting_card.DataBaseHandler.onCreate(DataBaseHandler.java:35) 06-30 13:14:43.104: E/AndroidRuntime(941): at
android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252) 06-30 13:14:43.104: E/AndroidRuntime(941): at
android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) 06-30 13:14:43.104: E/AndroidRuntime(941): at
com.example.visiting_card.DataBaseHandler.addcontacts(DataBaseHandler.java:48) 06-30 13:14:43.104: E/AndroidRuntime(941): at
com.example.visiting_card.SignIN.database(SignIN.java:66) 06-30 13:14:43.104: E/AndroidRuntime(941): at
com.example.visiting_card.SignIN.access$0(SignIN.java:62) 06-30 13:14:43.104: E/AndroidRuntime(941): at
com.example.visiting_card.SignIN$1.onClick(SignIN.java:54) 06-30 13:14:43.104: E/AndroidRuntime(941): at
android.view.View.performClick(View.java:4424)

06-30 13:14:43.104: E/AndroidRuntime(941):  at  
android.view.View$PerformClick.run(View.java:18383)
06-30 13:14:43.104: E/AndroidRuntime(941):  at  
android.os.Handler.handleCallback(Handler.java:733)
06-30 13:14:43.104: E/AndroidRuntime(941):  at    
android.os.Handler.dispatchMessage(Handler.java:95)
06-30 13:14:43.104: E/AndroidRuntime(941):  at android.os.Looper.loop(Looper.java:137)
06-30 13:14:43.104: E/AndroidRuntime(941):  at  
android.app.ActivityThread.main(ActivityThread.java:4998)
06-30 13:14:43.104: E/AndroidRuntime(941):  at  
java.lang.reflect.Method.invokeNative(Native Method)
06-30 13:14:43.104: E/AndroidRuntime(941):  at  
java.lang.reflect.Method.invoke(Method.java:515)
06-30 13:14:43.104: E/AndroidRuntime(941):  at  
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
06-30 13:14:43.104: E/AndroidRuntime(941):  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
06-30 13:14:43.104: E/AndroidRuntime(941):  at dalvik.system.NativeStart.main(Native   
Method)

It looks like you missed a space in the SQL to create the table. It should probably read:

create table contact_details (id INTEGER PRIMARY KEY AUTOINCREMENT,email text,contact text,company text,address1 text,address2 text,state text)

Try changing the onCreate function, putting a space after the 'table' keyword like so:

public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    String Table_create="create table " + Table_name + " (" + KEY_ID + "   
        INTEGER PRIMARY KEY AUTOINCREMENT," + Email + " text,"
        + Contact +" text," + Company + " text," + address1 + "  
        text," + address2 + " text," + State +" text" + ")";
    db.execSQL(Table_create);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM