, когда я запускаю свое приложение, оно не показывает такого столбца. Я хочу обновить профиль учителя в моем приложении. У меня есть изменения имя_базы_данных, имя_таблицы, имя_столбца и оформление заказа. Я не знаю, что не так с запросом на обновление.
Заранее спасибо
public class DatabaseTeacher extends SQLiteOpenHelper {
public static final String databasename="Teacher";
public static final String Teacher_table="Teacher_table";
public static final String Teacher_name="Name";
public static final String Teacher_Email_ID="Email";
public static final String Teacher_Password="Password";
public static final String Teacher_Confirm_Password="ConfirmPassword";
public static final String Teacher_Phone_number="Phone";
public static final String Teacher_Branch="Branch";
public static final String Teacher_Subject="Subject";
public static final int versioncode=1;
public DatabaseTeacher(Context context){
super(
context,
databasename,
null,
versioncode);
}
@Override
public void onCreate(SQLiteDatabase database) {
String teacher_query;
teacher_query="CREATE TABLE IF NOT EXISTS "+Teacher_table+"(Name TEXT,Email TEXT PRIMARY KEY,Password TEXT,ConfirmPassword TEXT,Phone TEXT,Branch TEXT,Subject TEXT)";
database.execSQL(teacher_query);
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
String teacher_query;
teacher_query= "DROP TABLE IF EXISTS " + Teacher_table;
database.execSQL(teacher_query);
}
public boolean Teacher_Data(String Name,String Email,String Password,String ConfirmPassword,String Phone,String Branch,String Subject){
SQLiteDatabase db1=this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(Teacher_name,Name);
cv.put(Teacher_Email_ID,Email);
cv.put(Teacher_Password,Password);
cv.put(Teacher_Confirm_Password,ConfirmPassword);
cv.put(Teacher_Phone_number,Phone);
cv.put(Teacher_Branch,Branch);
cv.put(Teacher_Subject,Subject);
long result=db1.insert(Teacher_table,null,cv);
if(result==-1)
return false;
else
return true;
}
public Cursor TeacherData()
{
SQLiteDatabase db1=this.getWritableDatabase();
Cursor res = db1.rawQuery("select * from "+Teacher_table,null);
return res;
}
public Boolean update(String Name,String Email,String Password,String ConfirmPassword,String Phone,String Branch,String Subject){
ContentValues args= new ContentValues();
args.put(Teacher_name,Name);
args.put(Teacher_Email_ID,Email);
args.put(Teacher_Password,Password);
args.put(Teacher_Confirm_Password,ConfirmPassword);
args.put(Teacher_Phone_number,Phone);
args.put(Teacher_Branch,Branch);
args.put(Teacher_Subject,Subject);
SQLiteDatabase db = this.getWritableDatabase();
int res = db.update(Teacher_table,args,Teacher_name + "=" + Name,null);
return res>0;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_teacher_profile);
editname=findViewById(R.id.teachername);
editemail=findViewById(R.id.teacheremail);
editpassword=findViewById(R.id.teacherpassword);
editconfirm=findViewById(R.id.teacherconfirm);
editphone=findViewById(R.id.teacherphone);
editbranch=findViewById(R.id.teacherbranch);
editsubject=findViewById(R.id.teachersubject);
btnteacherupdate=findViewById(R.id.btnteacherupdate);
dbh = new DatabaseTeacher(getApplicationContext());
sqLiteDatabase=dbh.getReadableDatabase();
res=dbh.TeacherData();
if(res.moveToFirst())
{
do{
String name,email,password,confirm,phone,branch,subject;
name= res.getString(0);
email=res.getString(1);
password=res.getString(2);
confirm=res.getString(3);
phone=res.getString(4);
branch=res.getString(5);
subject=res.getString(6);
editname.setText(name);
editemail.setText(email);
editpassword.setText(password);
editconfirm.setText(confirm);
editphone.setText(phone);
editbranch.setText(branch);
editsubject.setText(subject);
}while(res.moveToNext());
}
btnteacherupdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
String name= editname.getText().toString().trim();
String email= editemail.getText().toString().trim();
String password= editpassword.getText().toString().trim();
String confirm= editconfirm.getText().toString().trim();
String phone =editphone.getText().toString().trim();
String branch=editbranch.getText().toString().trim();
String subject=editsubject.getText().toString().trim();
//Save into DBS
dbh.update(name,email,password,confirm,phone,branch,subject);
Toast.makeText(TeacherProfileActivity.this, "Modified Successfully", Toast.LENGTH_SHORT).show();
dbh.close();
startActivity(new Intent(TeacherProfileActivity.this, StudentHomeActivity.class));
finish();
}catch (Exception e){
e.printStackTrace();
}
}
});
}
}
logcat
W/System.err: android.database.sqlite.SQLiteException: no such column: Hshs (Sqlite code 1 SQLITE_ERROR): , while compiling: UPDATE Teacher_table SET Email=?,Phone=?,Branch=?,Subject=?,Name=?,Password=?,ConfirmPassword=? WHERE Name=Hshs, (OS error - 11:Try again)
W/System.err: at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:948)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:559)
W/System.err: at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:603)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:63)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1969)
at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1912)
at com.example.collegecongruency.Database.DatabaseTeacher.update(DatabaseTeacher.java:102)
at com.example.collegecongruency.TeacherProfileActivity$1.onClick(TeacherProfileActivity.java:89)
at android.view.View.performClick(View.java:6659)
at android.view.View.performClickInternal(View.java:6631)
W/System.err: at android.view.View.access$3100(View.java:790)
at android.view.View$PerformClick.run(View.java:26187)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)