日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java怎么更改id名_java - 尽管ID已更改为_id,但列'_id'不存在

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java怎么更改id名_java - 尽管ID已更改为_id,但列'_id'不存在 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我已經將我的ID重命名為_id,但仍然得到column '_id' does not exist ...我錯過了什么嗎?

MyDatabaseelper.javapublic class MyDatabaseHelper extends SQLiteOpenHelper {

public static final int DATABASE_VERSION=1;

public static final String DATABASE_NAME="alm.db";

public static final String TABLE_INFO="Information";

public static final String TABLE_WORKFORCE="WorkForce";

public static final String TABLE_WORKDETAILS="WorkDetails";

public static final String Subcontractors="Subcontractors";

public static final String NumberOfPerson="NumberOfPerson";

public static final String NumberOfHours="NumberOfHours";

public static final String ID="_id";

public static final String TimeIn_Info="timeIn_Info";

public static final String TimeOut_Info="timeOut_Info";

public void onCreate(SQLiteDatabase db) {

db.execSQL("create table " + TABLE_INFO + "(ID INTEGER PRIMARY KEY ,Name TEXT,Weather TEXT, Date DATETIME, Status Text, TimeIn_Info DATE TIME, TimeOut_Info DATETIME)");

db.execSQL("create table " + TABLE_WORKFORCE + "(ID INTEGER PRIMARY KEY ,Subcontractors TEXT,NumberOfPerson INTEGER,NumberOfHours TEXT, TInfo_id INTEGER, FOREIGN KEY(TInfo_id) REFERENCES "+TABLE_INFO+"(ID))");

}

ListDisplay.java

public class ListDisplay extends AppCompatActivity {

InfoAPI sqlcon;

private SimpleCursorAdapter dataAdapter;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.listdisplay1);

sqlcon = new InfoAPI(this);

final String name1 = getIntent().getExtras().getString("name");

BuildList(name1);

}

public void BuildList(String name) {

final String name1 = name;

sqlcon.open();

Cursor cursor=sqlcon.readEntry(name1);

String[] columns=new String[]{

MyDatabaseHelper.Weather,MyDatabaseHelper.Date,MyDatabaseHelper.Status,MyDatabaseHelper.TimeIn,MyDatabaseHelper.TimeOut

};

int[] to=new int[]{

R.id.weather,R.id.date,R.id.status,R.id.in,R.id.out

};

// create the adapter using the cursor pointing to the desired data

//as well as the layout information

dataAdapter = new SimpleCursorAdapter(

this, R.layout.listdispaly,

cursor,

columns,

to,

0);

ListView listView = (ListView) findViewById(R.id.listView1);

// Assign adapter to ListView

listView.setAdapter(dataAdapter);

}

}

InfoAPI.java

public Cursor readEntry(String name)

{

Cursor c=database.rawQuery("SELECT Weather, Date, Status, TimeIn_Info, TimeOut_Info FROM " + MyDatabaseHelper.TABLE_INFO + " WHERE Name = ?", new String[]{String.valueOf(name)}, null);

if (c != null) {

c.moveToFirst();

}

return c;

}

}

LogCat錯誤

Caused by: java.lang.IllegalArgumentException: column '_id' does not exist

at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:333)

at android.widget.CursorAdapter.init(CursorAdapter.java:180)

at android.widget.CursorAdapter.(CursorAdapter.java:157)

at android.widget.ResourceCursorAdapter.(ResourceCursorAdapter.java:96)

at android.widget.SimpleCursorAdapter.(SimpleCursorAdapter.java:104)

at com.example.project.project.ListDisplay.BuildList(ListDisplay.java:49)

at com.example.project.project.ListDisplay.onCreate(ListDisplay.java:31)

at android.app.Activity.performCreate(Activity.java:6237)

at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)

at android.app.ActivityThread.-wrap11(ActivityThread.java)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)

最佳答案

您創建表查詢時仍在使用“ ID”(硬編碼字符串)public void onCreate(SQLiteDatabase db) {

db.execSQL("create table " + TABLE_INFO + " ( " + ID + " INTEGER PRIMARY KEY ,Name TEXT,Weather TEXT, Date DATETIME, Status Text, TimeIn_Info DATE TIME, TimeOut_Info DATETIME)");

db.execSQL("create table " + TABLE_WORKFORCE + " ( " + ID + " INTEGER PRIMARY KEY ,Subcontractors TEXT,NumberOfPerson INTEGER,NumberOfHours TEXT, TInfo_id INTEGER, FOREIGN KEY(TInfo_id) REFERENCES "+TABLE_INFO+"(ID))");

}

您將不得不強制升級數據庫,要么從設備上完全卸載該應用程序,然后再次重新安裝它,要么增加版本。

SimpleCursorAdapter需要光標中的_id。將其添加到查詢中,例如

Cursor c=database.rawQuery("SELECT _id, Weather, Date, Status, TimeIn_Info, TimeOut_Info FROM " + MyDatabaseHelper.TABLE_INFO + " WHERE Name = ?", new String[]{String.valueOf(name)}, null);

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java怎么更改id名_java - 尽管ID已更改为_id,但列'_id'不存在的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。