2011-06-30 87 views
0

我有2个文本字段的用户名和密码,并在同一视图中的按钮我填充这两个文本框,并单击提交按钮用于在数据库中插入数据,但它插入失败在sqlite数据库中,我也在下面粘贴我的Log猫。请看看问题出在哪里:为什么不插入数据库?谢谢。记录没有插入数据库sqlite

public class MyContentProvider extends ContentProvider { 
public static final String USER_NAME = "USER_NAME"; 
public static final String PASSWORD = "PASSWORD"; 

private SQLiteDatabase sqlDB; 

public DatabaseHelper dbHelper; 

private static final String DATABASE_NAME = "Users.db"; 

private static final int DATABASE_VERSION = 1; 

private static final String TABLE_NAME = "User"; 

private static final String TAG = "MyContentProvider"; 

public static class DatabaseHelper extends SQLiteOpenHelper { 

    DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

ava:150) 
     06-30 12:22:49.622: ERROR/JavaBinder(235):  at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:140) 
    06-30 12:22:49.622: ERROR/JavaBinder(235):  at android.os.Binder.execTransact(Binder.java:287) 
     06-30 12:22:49.622: ERROR/JavaBinder(235):  at dalvik.system.NativeStart.run(Native Method) 
     06-30 12:22:55.271: DEBUG/dalvikvm(235): GC freed 542 objects/51288 bytes in 152ms 
+0

感谢名单亚历用于改善问话.. – SRam

回答

1

您必须将密码存储为文本,'PASS'在sqlite中不存在,所以创建表时可能会出现一些错误。试试这个:

db.execSQL("Create table " 
      + TABLE_NAME 
      + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, USER_NAME TEXT,PASSWORD TEXT);"); 

如果你不想存储密码以可读格式你显然必须首先进行加密。

+0

喜塞萨尔相同的错误被修改它 – SRam

+0

误差在这个东西SQLDB = dbHelper.getWritableDatabase到来后即将(); \t \t //在用户表中插入记录并获取最近插入记录的行号 \t \t long rowId = sqlDB.insert(TABLE_NAME,“”,contentvalues); \t \t如果(ROWID> 0){ \t \t \t乌里rowUri = ContentUris.appendId( \t \t \t \t \t MyUsers.User.CONTENT_URI.buildUpon(),ROWID).build(); \t \t \t getContext()。getContentResolver()。notifyChange(rowUri,null); \t \t \t return rowUri; \t \t} \t \t throw new SQLException(“无法将行插入到+ uri中; – SRam