کلیدستان

نسخه‌ی کامل: مشکل در ذخیره ی اطلاعات در دیتابیس
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان
من می خوام یه برنامه ای رو بسازم که یک اسمی رو از کاربر بگریره و اون رو در دیتابیس ذخیره کنه!
کدهاشم نوشتم ولی نمی دونم کجای کار مشکل داره که وقتی رو دکمه ذخیره کلیک می کنم خطا می ده...
دوستان کمک کنن لطفا
این کد
MyDatabaseHelper.java



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



public class MyDatabaseHelper extends SQLiteOpenHelper
{
   ContentValues cv;
   public static final String DB_name="my_information.db";
   public static final String TBL_name="information";
   public static final String name="Name";
  public MyDatabaseHelper(Context context) {
       super(context, DB_name, null,1);

   }

   @Override
   public void onCreate(SQLiteDatabase db) {
       db.execSQL("CREATE TABLE"+ TBL_name +
               "("+ "Id INTEGER PRIMARY KEY AUTOINCREMENT,"+ name + " TEXT)" );

   }

   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
       db.execSQL("DROP TABLE IF EXISTS" +TBL_name);
       onCreate(db);
   }
   public boolean insertData(String n)
   {
       SQLiteDatabase db = this.getWritableDatabase();

     cv =new ContentValues();
         cv.put(name,n);

      long x= db.insert(TBL_name,null,cv);
       db. close();
       if(x==-1){
           return false;
           }
       else return true;


   }
}


اینم کد MainActivity.java

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


public class MainActivity extends AppCompatActivity {
       MyDatabaseHelper db;
   EditText editText;


   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       db=new MyDatabaseHelper(this);
       editText =(EditText) findViewById(R.id.editText);
   }
   public void btnSave(View view){


       String info=editText.getText().toString();


       if(info.length()<1){
           editText.setHint("please Enter a Name");
          return;
       }
      boolean f= db.insertData(info);
       String m="";
       if(f==true)
           m ="اطلاعات ذخیره شد";
       else
           m="خطا";

       Toast.makeText(MainActivity.this,m,Toast.LENGTH_LONG).show();

       }
}


اینم خطایی که می ده:
08-13 10:46:47.540 14457-14457/com.example.davod.myapplication E/Database: Error inserting Name=da
                                                                           android.database.sqlite.SQLiteException: no such table: information: , while compiling: INSERT INTO information(Name) VALUES(?);
                                                                               at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
                                                                               at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
                                                                               at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
                                                                               at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83)
                                                                               at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41)
                                                                               at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1149)
                                                                               at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1569)
                                                                               at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
                                                                               at com.example.davod.myapplication.MyDatabaseHelper.insertData(MyDatabaseHelper.java:41)
                                                                               at com.example.davod.myapplication.MainActivity.btnSave(MainActivity.java:32)
                                                                               at java.lang.reflect.Method.invokeNative(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:507)
                                                                               at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                                                                               at android.view.View.performClick(View.java:2485)
                                                                               at android.view.View$PerformClick.run(View.java:9080)
                                                                               at android.os.Handler.handleCallback(Handler.java:587)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                               at android.os.Looper.loop(Looper.java:130)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:3683)
                                                                               at java.lang.reflect.Method.invokeNative(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:507)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
                                                                               at dalvik.system.NativeStart.main(Native Method)