【问题标题】:i want to add two new colomns to database how can i? [duplicate]我想向数据库添加两个新列,我该怎么做? [复制]
【发布时间】:2018-06-01 11:44:39
【问题描述】:

我的数据库中有五个表我想在一个表中再添加两个列 我该如何帮助我提前谢谢。 这是我的桌子

                   sqLiteDatabase.execSQL(CREATE_ProductSales_TABLE);
                 sqLiteDatabase.execSQL(CREATE_UNIT_TABLE);
                  sqLiteDatabase.execSQL(CREATE_STOCK_TABLE);
                 sqLiteDatabase.execSQL(CREATE_OrderSales_TABLE);(i want to add two coloms to this table)
                sqLiteDatabase.execSQL(CREATE_Prod_TABLE);
                 sqLiteDatabase.execSQL(CREATE_CAT_TABLE);

如何执行onupgrade方法 在android中更新表和不更新表我应该写什么

【问题讨论】:

  • 什么是CREATE_OrderSales_TABLE?我presume 它是一个字符串,但它的值是多少?你如何设置它的值?

标签: android sql android-sqlite android-sql


【解决方案1】:

创建表后,您可以使用alter语句添加列,例如

ALTER TABLE {OrderSales_Table} ADD COLUMN ColumnName {Integer};

【讨论】:

    【解决方案2】:

    您可以使用 alter 语句添加新列,如 as

    sqLiteDatabase.execSQL("ALTER TABLE Tablename ADD COLUMN Newcolumn VARCHAR DEFAULT 0");

    【讨论】:

      【解决方案3】:

      使用我用来创建表的SQLiteOpenHelper 类。

      看看我的课

      public class DBHelper extends SQLiteOpenHelper {
      
      // Database Information
      public static final String DB_NAME = "ROADTRIP_DB";
      
      // database version
      static final int DB_VERSION = 1;
      
      //<editor-fold desc = "TABLE NAMES">
      public static final String DETAILS = "details";
      //</editor-fold>
      
      //<editor-fold desc="TABLE DETAILS">
      public static final String ID = "_id";
      public static final String NAME = "name";
      public static final String EMAIL = "email";
      public static final String MOBILE = "mobile";
      public static final String DATETIMESTAMP = "datetimestamp";
      public static final String STATUS = "status";
      //</editor-fold>
      
      
      //<editor-fold desc="CREATE_ROADTRIP_TABLE">
      private static final String CREATE_ROADTRIP_TABLE = "CREATE TABLE IF NOT EXISTS " + DETAILS + "("
              + ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
              + NAME + " VARCHAR,"
              + EMAIL + " VARCHAR,"
              + MOBILE + " VARCHAR,"
              + DATETIMESTAMP + " DATETIME,"
              + STATUS + " INTEGER)";
      //</editor-fold>
      
      
      public DBHelper(Context context) {
          super(context, DB_NAME, null, DB_VERSION);
      }
      
      @Override
      public void onCreate(SQLiteDatabase db) {
          db.execSQL(CREATE_ROADTRIP_TABLE);
      }
      
      @Override
      public void onUpgrade(SQLiteDatabase db, int i, int i1) {
          onCreate(db);
          }
      }
      

      我还使用另一个类在我的数据库中添加命令

      public class DBManager {
      
      private DBHelper DBHelper;
      
      private Context context;
      
      private SQLiteDatabase database;
      
      public DBManager(Context c) {
          context = c;
      }
      
      public DBManager open() throws SQLException {
          DBHelper = new DBHelper(context);
          database = DBHelper.getWritableDatabase();
          return this;
      }
      
      public void close() {
          DBHelper.close();
      }
      
      //inserting data to database
      //<editor-fold desc = "insertToDetails">
      public void insertToDetails(String name,
                                        String email,
                                        String mobile,
                                        String datetimestamp,
                                        String status) {
      
          ContentValues contentValue = new ContentValues();
          contentValue.put(DBHelper.NAME, name);
          contentValue.put(DBHelper.EMAIL, email);
          contentValue.put(DBHelper.MOBILE, mobile);
          contentValue.put(DBHelper.DATETIMESTAMP, datetimestamp);
          contentValue.put(DBHelper.STATUS, status);
      
          database.insert(DETAILS, null, contentValue);
      }
      //</editor-fold>
      
      //for getting the data from database fuction
      public Cursor fetchData() {
          String[] columns = new String[]{
                  DBHelper.ID,
                  DBHelper.NAME,
                  DBHelper.EMAIL,
                  DBHelper.MOBILE
          };
          Cursor cursor = database.query(DETAILS, columns, null, null, null, null, null);
          if (cursor != null) {
              cursor.moveToFirst();
          }
          return cursor;
      }
      

      }

      当我想向我的database 添加数据时。我只是打电话

         dbManager.insertToDetails("column1","column2"...);
      

      花点时间阅读这篇文章。 database 真的让你的生活更轻松

      编辑

      在你可以使用它之前,确保你必须声明这个:

      SQLiteDatabase sqldb;
      DBHelper dbHelper;
      DBManager dbManager;
      

      只要您想使用数据库来防止数据库泄漏,请在您的 onCreate (for extends AppCompactActivity) 或 onCreateView(对于 Fragment)上调用此函数。希望这会有所帮助

      dbHelper = new DBHelper(getContext());
      sqldb = dbHelper.getReadableDatabase();
      dbManager = new DBManager(getActivity());
      dbManager.open();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-16
        • 1970-01-01
        • 2023-02-03
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        • 2015-11-13
        • 1970-01-01
        相关资源
        最近更新 更多