2016-07-30 78 views
0

程序保存在SQLite数据库的用户名和密码,在Android的,但是当我在寄存器按钮,单击该程序unfortanetly程序在SQLite数据库保存用户名和密码的Android

RegisterActivity

package com.example.mina.sqlite; 

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class RegisterActivity extends AppCompatActivity { 
    EditText editText,editText2,editText3; 
    String username,userpass,conpass; 
    Button button; 
    Context ctx=this; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_register); 
     editText=(EditText)findViewById(R.id.editText3); 
     editText2=(EditText)findViewById(R.id.editText4); 
     editText3=(EditText)findViewById(R.id.editText5); 
     button=(Button)findViewById(R.id.button6); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       username=editText.getText().toString(); 
       userpass=editText2.getText().toString(); 
       conpass=editText3.getText().toString(); 
       if (!(userpass.equals(conpass))){ 
        Toast.makeText(getBaseContext(),"password not matching",Toast.LENGTH_LONG).show(); 
        editText.setText(""); 
        editText2.setText(""); 
        editText3.setText(""); 
        finish(); 
       } 
       else { 
        DatabaseOperations dp=new DatabaseOperations(ctx); 
        dp.putInformation(dp,username,userpass); 
        Toast.makeText(getBaseContext(),"registration succesfull",Toast.LENGTH_LONG).show(); 
        finish(); 

       } 

      } 
     }); 
    } 
} 

关闭activity_register

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.mina.sqlite.RegisterActivity"> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/editText3" 
     android:hint="enter ur name" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 
    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/editText4" 
     android:hint="enter ur password" 
     android:inputType="textPassword" 
     android:layout_below="@+id/editText3" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/editText5" 
     android:hint="enter ur confirm password" 
     android:inputType="textPassword" 
     android:layout_below="@+id/editText4" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Register" 
     android:id="@+id/button6" 
     android:layout_below="@+id/editText5" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="121dp" /> 
</RelativeLayout> 

TableData.java

package com.example.mina.sqlite; 

import android.provider.BaseColumns; 

/** 
* Created by Mina on 7/28/2016. 
*/ 
public class TableData { 
    public TableData(){ 

    } 
    public static abstract class TableInfo implements BaseColumns{ 
     public static final String User_Name="user_name"; 
     public static final String User_Pass="user_pass"; 
     public static final String Database_name="user_info"; 
     public static final String Table_name="reg_info"; 
    } 
} 

DatabaseOperations

package com.example.mina.sqlite; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.util.Log; 
import android.widget.EditText; 

/** 
* Created by Mina on 7/28/2016. 
*/ 
public class DatabaseOperations extends SQLiteOpenHelper { 
    public static final int database_version=1; 
    public String CREATE_QUERY="CREATE TABLE "+ TableData.TableInfo.Table_name+"("+ TableData.TableInfo.User_Name +" TEXT," + TableData.TableInfo.User_Pass + " TEXT);"; 

    public DatabaseOperations(Context context) { 
     super(context, TableData.TableInfo.Database_name, null, database_version); 
     Log.d("DatabaseOperstions","Database created"); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(CREATE_QUERY); 
     Log.d("DatabaseOperations","Table created"); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

    } 
    public void putInformation(DatabaseOperations dop, String name, String pass){ 
     SQLiteDatabase sq=dop.getWritableDatabase(); 
     ContentValues cv=new ContentValues(); 
     cv.put(TableData.TableInfo.User_Name,name); 
     cv.put(TableData.TableInfo.User_Pass,pass); 
     Long k=sq.insert(TableData.TableInfo.Table_name,null,cv); 
     Log.d("Database operations","one raw inserted"); 
    } 
} 

MainActivity.java

package com.example.mina.sqlite; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
    public void Login(View view){ 
     Intent i=new Intent(MainActivity.this,LoginActivity.class); 
     startActivity(i); 
    } 
    public void Register(View view){ 
     Intent i=new Intent(MainActivity.this,RegisterActivity.class); 
     startActivity(i); 
    } 
    public void Update(View view){ 
     Intent i=new Intent(MainActivity.this,UpdateActivity.class); 
     startActivity(i); 
    } 
    public void Delete(View view){ 
     Intent i=new Intent(MainActivity.this,DeleteActivity.class); 
     startActivity(i); 
    } 
} 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.mina.sqlite.MainActivity"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="login" 
     android:onClick="Login" 
     android:paddingLeft="150dp" 
     android:paddingRight="150dp" 
     android:id="@+id/button" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="register" 
     android:onClick="Register" 
     android:paddingRight="150dp" 
     android:paddingLeft="150dp" 
     android:textSize="11dp" 
     android:id="@+id/button2" 
     android:layout_below="@+id/button" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="40dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="update info" 
     android:onClick="Update" 
     android:paddingLeft="150dp" 
     android:paddingRight="150dp" 
     android:textAlignment="center" 
     android:textSize="8dp" 
     android:textStyle="bold" 
     android:id="@+id/button3" 
     android:layout_centerVertical="true" 
     android:layout_centerHorizontal="true" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="delete user" 
     android:onClick="Delete" 
     android:paddingLeft="150dp" 
     android:paddingRight="150dp" 
     android:id="@+id/button4" 
     android:textSize="6dp" 
     android:layout_below="@+id/button3" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="46dp" /> 
</RelativeLayout> 

logcat的错误

07-30 16:28:47.766 1110-1110/com.example.mina.sqlite E/AndroidRuntime: FATAL EXCEPTION: main 
                     android.database.sqlite.SQLiteException: near "TABLEreg_info": syntax error (code 1): , while compiling: CREATE TABLEreg_info(user_name TEXTuser_pass TEXT); 
                      at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 
                      at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882) 
                      at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493) 
                      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.executeSql(SQLiteDatabase.java:1663) 
                      at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1594) 
                      at com.example.mina.sqlite.DatabaseOperations.onCreate(DatabaseOperations.java:23) 
                      at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252) 
                      at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164) 
                      at com.example.mina.sqlite.DatabaseOperations.putInformation(DatabaseOperations.java:33) 
                      at com.example.mina.sqlite.RegisterActivity$1.onClick(RegisterActivity.java:39) 
                      at android.view.View.performClick(View.java:4204) 
                      at android.view.View$PerformClick.run(View.java:17355) 
                      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:5041) 
                      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:793) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
                      at dalvik.system.NativeStart.main(Native Method) 
+1

请添加您的崩溃日志信息 – USKMobility

+0

当我重新注册人 –

回答

1

问题是语法错误。我编辑您的CREATE_QUERY SQL查询。要小心空间

DatabaseOperations.java像下面

public class DatabaseOperations extends SQLiteOpenHelper { 
public static final int database_version=1; 

public String CREATE_QUERY = 
     "CREATE TABLE " + 
     TableData.TableInfo.Table_name + " (" + 
     TableData.TableInfo.User_Name + " TEXT," + 
     TableData.TableInfo.User_Pass + " TEXT);"; 


public DatabaseOperations(Context context) { 
    super(context, TableData.TableInfo.Database_name, null, database_version); 
    Log.d("DatabaseOperstions","Database created"); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL(CREATE_QUERY); 
    Log.d("DatabaseOperations","Table created"); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

} 
public void putInformation(DatabaseOperations dop, String name, String pass){ 
    SQLiteDatabase sq=dop.getWritableDatabase(); 
    ContentValues cv=new ContentValues(); 
    cv.put(TableData.TableInfo.User_Name,name); 
    cv.put(TableData.TableInfo.User_Pass,pass); 
    Long k=sq.insert(TableData.TableInfo.Table_name,null,cv); 
    Log.d("Database operations","one raw inserted"); 
    } 
} 
+0

感谢解决问题提出问题 –

相关问题