Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQlite数据库我得到了这个错误:E/SQLiteLog:(1)表tbl_Individual_Registration没有名为Long2的列_Android - Fatal编程技术网

Android SQlite数据库我得到了这个错误:E/SQLiteLog:(1)表tbl_Individual_Registration没有名为Long2的列

Android SQlite数据库我得到了这个错误:E/SQLiteLog:(1)表tbl_Individual_Registration没有名为Long2的列,android,Android,以下是我的列代码: public static final int DATABASE_VERSION = 3; public static final String DATABASE_NAME = "BLOOD_PROJECT"; public static final String TABLE_NAME = "tbl_Individual_Donor_Registration"; public static final String TABLE_NAME_BLOOD_BANK = "tbl_B

以下是我的列代码:

public static final int DATABASE_VERSION = 3;
public static final String DATABASE_NAME = "BLOOD_PROJECT";
public static final String TABLE_NAME = "tbl_Individual_Donor_Registration";
public static final String TABLE_NAME_BLOOD_BANK = "tbl_Blood_Bank_Registration";
public static final String COL_1 = "Id";
public static final String COL_2 = "Name";
public static final String COL_3 = "Password";
public static final String COL_4 = "BloodGroup";
public static final String COL_5 = "BloodQuantity";
public static final String COL_6 = "MobileNo";


public static final String COL_7 = "Address";
public static final String COL_8 = "Lat2";
public static final String COL_9 = "Long2";
public static final String COL_10 = "Id";
public static final String COL_11 = "Name";
public static final String COL_12 = "Password";
public static final String COL_13 = "MobileNo";

public static final String COL_14 = "Lat2";
public static final String COL_15 = "Long2";
创建表的代码如下所示:

   String CREATE_TABLE_Individual_Donor_Registration = "CREATE TABLE " + TABLE_NAME + "(" + COL_1 + " INTEGER PRIMARY KEY, " + COL_2 + " TEXT, " + COL_3 + " TEXT, " + COL_4 + " TEXT, "+ COL_5 + " TEXT, " + COL_6  + " TEXT, " + COL_14 + " TEXT, " + COL_15 + " TEXT" + ")";
        db.execSQL(CREATE_TABLE_Individual_Donor_Registration);
要将数据插入数据库,请执行以下操作:

    public boolean addUser(IndiviualUser user)
    {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(COL_2,user.getName());
        cv.put(COL_3,user.getPassword());
        cv.put(COL_4,user.getBlood_Group());
        cv.put(COL_5,user.getBlood_Quantity());
        cv.put(COL_6,user.getMobile_No());
        cv.put(COL_14,user.getLat2());
        cv.put(COL_15,user.getLong2());
        long result = db.insert(TABLE_NAME,null, cv);
        Log.d("ID","DataInserted SuccessFully.");

        db.close();

        if(result == -1)
        {
            return false;
        }
        else
        {
            return true;
        }
    }

我还尝试了以下解决方案:

看起来您稍后在数据库中添加了Long2列。我将执行以下操作之一:

  • 卸载并重新安装你的应用程序
  • 最好、更好的方法是在
    onUpdate
    方法中
    删除
    重新创建
    tbl\u个人\u捐赠者注册表,并在更改模式时增加db版本

  • 谢谢你,先生,你的解决方案成功了。但是我在Select查询代码中遇到了另一个与数据库相关的问题:String Select=“Select*FROM”+TABLE\u NAME+,其中“+COL\u 4+”=”+final\u blood\u group;我遇到了这个问题:android.database.sqlite.SQLiteException:near“+”:语法错误(代码1):,编译时:SELECT*FROM tbl_Individual_provider_Registration其中BloodGroup=B+B+来自用户我想按血型显示结果。我希望你能帮助我。谢谢。@t电话我对这件事不是很确定,也许你可以发布另一个问题,并征求更有经验的数据库人员的反馈。我认为您需要将
    +
    转换为ASCII或UTF8,并以同样的方式检索它们。如果答案有帮助,不要忘记接受并投票,这样其他成员也可以从你的问题中受益。