2017-10-15 183 views
-3

有代码。我只是不知道是什么问题。我只是将电子邮件和密码作为用户的输入并试图存储到名为stu的表中。应用程序在点击登录按钮时崩溃,该按钮使用“intent”重定向到下一页并将值插入到表中。 如果问题能够被识别,导致应用程序崩溃,那将会非常有帮助。 感谢应用程序崩溃插入到SQLITE数据库

数据库Helper.java

package com.example.zain.smd1; 



import android.content.ContentValues; 

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 





public class DatabaseHelper extends SQLiteOpenHelper { 

public static final String DB_NAME = "student.db"; 
public static final String Table_name = "stu"; 
public static final String COL1 = "Id"; 
public static final String COL2 = "EMAIL"; 
public static final String COL3 = "PASS"; 
private static final String PASS = "PASS"; 
private static final String EMAIL = "EMAIL"; 

public DatabaseHelper(Context context) { 
    super(context,DB_NAME,null,1); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 


    db.execSQL("create table " + Table_name + " (Id INTEGER PRIMARY KEY AUTOINCREMENT, EMAIL TEXT , PASS TEXT)"); 


} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    db.execSQL("DROP TABLE IF EXISTS "+Table_name); 
    onCreate(db); 
} 
public boolean insertdata(String email , String pass){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues content = new ContentValues(); 

    content.put(EMAIL,email); 
    content.put(PASS,pass); 
    long result = db.insert(Table_name,null,content); 
    if (result==-1){ 
     return false; 


    } 
    else 
     return true; 

} 
} 

主要Activity.java

package com.example.zain.smd1; 

import android.content.Intent; 
import android.content.SharedPreferences; 
import android.graphics.Color; 
import android.preference.PreferenceManager; 
import android.support.constraint.ConstraintLayout; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.RelativeLayout; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
EditText et1,et2; 
String email,pass; 
RelativeLayout r1; 
SharedPreferences sp; 
DatabaseHelper db; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    et1= (EditText) findViewById(R.id.eTemail); 

    et2 = (EditText) findViewById(R.id.eTpassword); 

    r1 = (RelativeLayout) findViewById(R.id.colorChange); 
} 

public void login(View view){ 

    email = et1.getText().toString(); 
    pass = et2.getText().toString(); 
    if(email.equals("admin")&& pass.equals("admin")){ 
     Toast.makeText(getApplicationContext(), 
       "Redirecting...",Toast.LENGTH_SHORT).show(); 
     r1.setBackgroundColor(Color.RED); 
      /*sp= PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor e= sp.edit(); 
     e.putString("name",email); 
     e.putString("password",pass); 
     e.apply();*/ 
     boolean ischecked = db.insertdata(et1.getText().toString(),et2.getText().toString()); 
     if(ischecked==true) { 

      Toast.makeText(getApplicationContext(), 
        "Added",Toast.LENGTH_SHORT).show(); 
      Intent intent = new Intent(this, Main2Activity.class); 

      startActivity(intent); 
     } 
    } 
    else { 
     r1.setBackgroundColor(Color.GREEN); 
     Toast.makeText(getApplicationContext(), 
       "Invalid password or email",Toast.LENGTH_SHORT).show(); 


    } 

    /* 
    String name=sp.getString("name",""); 
    String pass= sp.getString("password",""); 
    et1.setText(name); 
    et2.setText(pass); 
    */ 
    } 



    } 

应用程序崩溃的插入SQLite数据库。我只是不知道什么是错的

+1

哪里异常日志? –

+0

让我们来得到一个“没有这样的列”的例外? –

+0

找到解决方案。 Thankyou顺便说一句:) –

回答

0

尝试从调试设备上卸载现有的应用程序,然后再次安装它。有时当你在安装之后改变表格的结构,并且再次安装时,它不会创建新的表格。

0

你应该试试这个...

DatabaseHelper db; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    //add this line in your code.. 
    db = new DatabaseHelper(this); 

    et1= (EditText) findViewById(R.id.eTemail); 

    et2 = (EditText) findViewById(R.id.eTpassword); 

    r1 = (RelativeLayout) findViewById(R.id.colorChange); 
} 
+0

这有帮助。 Thankyou –

+0

欢迎! @ZainAfzal – vivek

相关问题