[英]Android Database Connection insqlite
我正在尝试在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错误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):位于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):在
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)
您似乎错过了在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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.