gpt4 book ai didi

android - 如何在 Android Studio 的 SQLite 中解决语法错误?

转载 作者:行者123 更新时间:2023-11-30 02:25:06 25 4
gpt4 key购买 nike

这是我在代码中遇到的错误

::01-16 13:28:23.029    2782-
2782/com.example.innovative.firstapp E/SQLiteLog﹕ (1) near "add": syntax error
01-16 13:28:23.049 2782-2782/com.example.innovative.firstapp E/SQLiteDatabase﹕ Error inserting lastName=chauhan phone=1224567890 add=chandigarh firstName=param email=er.param90@gmail.com password=12345
android.database.sqlite.SQLiteException: near "add": syntax error (code 1): , while compiling: INSERT INTO Reg_User(lastName,phone,add,firstName,email,password) VALUES (?,?,?,?,?,?)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1113)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:686)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1573)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1445)
at com.example.innovative.firstapp.dbHelper.insert(dbHelper.java:57)
at com.example.innovative.firstapp.registrationForm.onClick(registrationForm.java:83)
at android.view.View.performClick(View.java:4432)
at android.view.View$PerformClick.run(View.java:18338)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5283)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
01-16 13:28:23.119 2782-2782/com.example.innovative.firstapp I/brcm-gr﹕ [gralloc_lock]: new usage 0x933

这是我的 registrationForm.java 文件的代码 fragment

public class registrationForm extends ActionBarActivity implements View.OnClickListener {
EditText e1, e2, e3, e4, e5, e6, e7;
Button b1, b2;
public static final Pattern EMAIL = Pattern.compile("[a-zA-Z0-9+._%-+]{1,100}" + "@" + "[a-zA-Z0-9][a-zA-Z0-9-]{0,10}" + "(" + "."
+ "[a-zA-Z0-9][a-zA-Z0-9-]{0,20}" + ")+");
public static final Pattern FirstNAME = Pattern.compile("[a-zA-Z0-9]{1,10}");
public static final Pattern LastNAME = Pattern.compile("[a-zA-Z0-9]{1,10}");
public static final Pattern PASSWORD = Pattern.compile("[0-9]{4,16}");
public static final Pattern PHONE = Pattern.compile("[0-9]{10}");
public static final Pattern ADD = Pattern.compile("[A-Z a-z 0-9]{1,50}");
dbHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registration_form);
e1 = (EditText) findViewById(R.id.editText);
e2 = (EditText) findViewById(R.id.editText2);
e3 = (EditText) findViewById(R.id.editText3);
e4 = (EditText) findViewById(R.id.editText4);
e5 = (EditText) findViewById(R.id.editText5);
e6 = (EditText) findViewById(R.id.editText6);
e7 = (EditText) findViewById(R.id.editText7);
b1 = (Button) findViewById(R.id.button);
b2 = (Button) findViewById(R.id.button2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
db=new dbHelper(this);

}

@Override
public void onClick(View v) {
String firstName = e1.getText().toString();
String lastName = e2.getText().toString();
String password = e3.getText().toString();
String confirm = e4.getText().toString();
String email = e5.getText().toString();
String phone = e6.getText().toString();
String add = e7.getText().toString();


if (v == b1) {

if (firstName.equals("") || lastName.equals("") || password.equals("") || confirm.equals("")
|| email.equals("") || phone.equals("") || add.equals(""))
{
Toast.makeText(this, "Field must not be null", Toast.LENGTH_SHORT).show();
}

if (!CheckFirst_name(firstName)) {
Toast.makeText(this, "ENTER VALID FIRST NAME", Toast.LENGTH_LONG).show();
}
if (!CheckLast_name(lastName)) {
Toast.makeText(this, "ENTER VALID LAST NAME", Toast.LENGTH_LONG).show();
}
if (!CheckPassword(password)) {
Toast.makeText(this, "ENTER VALID PASSWORD", Toast.LENGTH_LONG).show();
}
if (!CheckEmail(email)) {
Toast.makeText(this, "ENTER VALID EMAIL ID", Toast.LENGTH_LONG).show();
}
if (!CheckPhone(phone)) {
Toast.makeText(this, "ENTER VALID PHONE NUMBER", Toast.LENGTH_LONG).show();
}
if (!CheckAddress(add)) {
Toast.makeText(this, "ENTER VALID ADDRESS", Toast.LENGTH_LONG).show();
}
if (!confirm.equals(password)) {
Toast.makeText(this, "Password doesn't Match", Toast.LENGTH_LONG).show();
}
else{
db.insert(firstName, lastName, password,email,phone,add);

Toast.makeText(getApplicationContext(), "Account Successfully Created ", Toast.LENGTH_SHORT).show();
}
}
if (v == b2) {
Intent i1 = new Intent(this, Login.class);
startActivity(i1);
}
}

private boolean CheckEmail(String email) {

return EMAIL.matcher(email).matches();
}

private boolean CheckPassword(String password) {

return PASSWORD.matcher(password).matches();
}

private boolean CheckFirst_name(String firstName) {

return FirstNAME.matcher(firstName).matches();
}

private boolean CheckLast_name(String lastName) {
return LastNAME.matcher(lastName).matches();
}

private boolean CheckPhone(String phone) {
return PHONE.matcher(phone).matches();
}

private boolean CheckAddress(String add) {
return ADD.matcher(add).matches();
}

}

这是 dbHelper 类文件代码::

public class dbHelper extends SQLiteOpenHelper {
public static SQLiteDatabase db;

static final String DATABASE_NAME = "User.db";
static final int DATABASE_VERSION = 1;
public static final String KEY_ID="ID";
public static final String KEY_fname="firstName";
public static final String KEY_lname="lastName";
public static final String KEY_pass="password";
public static final String KEY_email="email";
public static final String KEY_phone="phone";
public static final String KEY_add="add";
public static final String Table_User="Reg_User";

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

@Override
public void onCreate(SQLiteDatabase _db)
{
_db.execSQL("CREATE TABLE"+ Table_User+ "("+ KEY_ID+" integer primary key autoincrement,"+
KEY_fname+" text,"+KEY_lname +" text,"+KEY_pass+" text,"+ KEY_email+" text,"+ KEY_phone+" text,"+KEY_add+"text)");
}

@Override
public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion)
{

_db.execSQL("DROP TABLE IF EXISTS " +Table_User);

onCreate(_db);
}


public void insert(String firstName, String lastName, String password, String email, String phone, String add)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_fname, firstName);
values.put(KEY_lname, lastName);
values.put(KEY_pass,password);
values.put(KEY_email,email);
values.put(KEY_phone,phone);
values.put(KEY_add, add);
db.insert(Table_User, null, values);
db.close();
}
public static String getSingleEntry(String email)
{
Cursor cursor=db.query("Reg_User", null, " KEY_email=?", new String[]{email}, null, null, null, null);
if(cursor.getCount()<1)
{
cursor.close();
return "NOT EXIST";
}
cursor.moveToFirst();
String password= cursor.getString(cursor.getColumnIndex("KEY_pwd"));
cursor.close();
return password;
}



}

我无法找出这段代码中的问题所在。

最佳答案

您不应该为 KEY_add 使用“add”,因为它是 SQL 的保留关键字。

关于android - 如何在 Android Studio 的 SQLite 中解决语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27979552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com