Android 安卓数据库连接insqlite

Android 安卓数据库连接insqlite,android,Android,我正在尝试连接android中的数据库,下面是代码 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 and

我正在尝试连接android中的数据库,下面是代码

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");
}

    }
这是contact.java文件

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;

    }
我得到的错误如下是logcat错误消息

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):在android.database.sqlite.sqlite程序中。
(SQLiteProgram.java:58) 06-30 13:14:43.104:E/AndroidRuntime(941):at
android.database.sqlite.sqlite语句。 (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)


看起来您在创建表的SQL语句中遗漏了一个空格。它大概应该是这样的:

create table contact_details (id INTEGER PRIMARY KEY AUTOINCREMENT,email text,contact text,company text,address1 text,address2 text,state text)
尝试更改onCreate函数,在“table”关键字后添加空格,如下所示:

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);
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);