`// * ** * ** * ** * ** * ** 錯誤的logcat 表示 ** * *** android.database.sqlite.SQLiteException:no such column:me:,while compiling:UPDATE TemplateTable SET user =?,alert =?,mycard =? WHERE用戶=我錯誤而更新表的Android源碼
// * ** * ** * ** * ** * ** * *設置活動* ** * ** * ** * ** *
Button save =(Button)findViewById(R.id.save_templates); save.setOnClickListener(新View.OnClickListener(){
public void onClick(View arg0) {
// TODO Auto-generated method stub
// Save templates selected
CardsDatabase db = new CardsDatabase(Settings.this);
db.open();
ContentValues cv=new ContentValues();
cv.put(CardsDatabase.USERTEMPLATE, "me");
cv.put(CardsDatabase.ALERT, Integer.toString(alert));
cv.put(CardsDatabase.MYCARD, Integer.toString(mycard));
db.updateTemplate(cv);
db.close();
Toast.makeText(Settings.this, "Settings saved successfully.", Toast.LENGTH_SHORT).show();
}
});
// * ** * ** * ** * ** * ** * ** 數據庫類* ** * ** * ** * ** * ***
公共類CardsDatabase {
public static String USERTEMPLATE = "user";
public static String MYCARD = "mycard";
public static String ALERT = "alert";
public static String USER = "user";
public static String NAME = "name";
public static String COMPANY = "company";
public static String TITLE = "title";
public static String ADDRESS = "address";
public static String PHONE = "phone";
public static String CEL = "cel";
public static String EMAIL = "email";
public static String PHOTO = "photo";
public static String MAC = "macaddress";
private static String DATABASE_NAME = "CardsDatabase";
public static String DATABASE_TABLE_TEMPLATE = "TemplateTable";
public static String DATABASE_TABLE_MYTABLE = "MYTable";
public static String DATABASE_TABLE_CONTACTS = "ContactsTable";
private static int DATABASE_VERSION = 1;
private DbHelper ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDatabase;
private static class DbHelper extends SQLiteOpenHelper {
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
// Log.d(Tag,"Inner on create called");
db.execSQL("CREATE TABLE " + DATABASE_TABLE_TEMPLATE + " ("
+ USERTEMPLATE + " TEXT NOT NULL," + MYCARD
+ " TEXT NOT NULL," + ALERT + " TEXT NOT NULL" + ");");
db.execSQL("CREATE TABLE " + DATABASE_TABLE_MYTABLE + " (" + USER
+ " TEXT NOT NULL," + NAME + " TEXT NOT NULL," + COMPANY
+ " TEXT," + TITLE + " TEXT," + ADDRESS + " TEXT," + PHONE
+ " TEXT NOT NULL," + CEL + " TEXT," + EMAIL
+ " TEXT NOT NULL," + PHOTO + " BLOB" + ");");
db.execSQL("CREATE TABLE " + DATABASE_TABLE_CONTACTS + " (" + MAC
+ " TEXT NOT NULL" + ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS" + DATABASE_TABLE_TEMPLATE);
db.execSQL("DROP TABLE IF EXISTS" + DATABASE_TABLE_MYTABLE);
db.execSQL("DROP TABLE IF EXISTS" + DATABASE_TABLE_CONTACTS);
onCreate(db);
}
}
public CardsDatabase(Context c) {
ourContext = c;
}
public CardsDatabase open() throws SQLException {
ourHelper = new DbHelper(ourContext);
ourDatabase = ourHelper.getWritableDatabase();
return this;
}
public void close() {
ourHelper.close();
}
public void createEntry(int type, ContentValues cv) {
// TODO Auto-generated method stub
switch (type) {
case 1:
ourDatabase.insert(DATABASE_TABLE_TEMPLATE, null, cv);
break;
case 2:
ourDatabase.insert(DATABASE_TABLE_MYTABLE, null, cv);
break;
case 3:
ourDatabase.insert(DATABASE_TABLE_CONTACTS, null, cv);
break;
}
}
public Cursor getTemplate() throws SQLException {
// TODO Auto-generated method stub
String[] columns = new String[] { USERTEMPLATE, MYCARD, ALERT };
Cursor c = ourDatabase.query(DATABASE_TABLE_TEMPLATE, columns, null,
null, null, null, null);
return c;
}
public Cursor getMyData() throws SQLException {
// TODO Auto-generated method stub
String[] columns = new String[] { USER, NAME, COMPANY, TITLE, ADDRESS,
PHONE, CEL, EMAIL, PHOTO };
Cursor c = ourDatabase.query(DATABASE_TABLE_MYTABLE, columns, null,
null, null, null, null);
return c;
}
public boolean contactExist(String mac) throws SQLException {
// TODO Auto-generated method stub
String[] columns = new String[] { MAC };
Cursor c = ourDatabase.query(DATABASE_TABLE_CONTACTS, columns, MAC
+ "=" + mac, null, null, null, null);
return c.getCount() > 0 ? true : false;
}
public void updateTemplate(ContentValues cv) {
String m = "me";
ourDatabase.update(DATABASE_TABLE_TEMPLATE, cv, USERTEMPLATE + "=" + m,
null);
}
public void updateMytable(ContentValues cv) {
String m = "me";
ourDatabase.update(DATABASE_TABLE_MYTABLE, cv, USER + "=" + m, null);
}
}`
我沒有更新的模式,我只是更新排在用戶列中包含「我」 – Ahmed
模板(用戶,警報,mycard),這些都是3 colu mns在裏面。 – Ahmed
非常感謝它的工作 – Ahmed