Android SQLite更新行错误没有这样的列

Android SQLite更新行错误没有这样的列,android,sqlite,Android,Sqlite,SQLite数据库不断地给出一个没有这样的列错误。我尝试了rawQuery和execQuery,但得到了相同的结果。我认为这是一个语法错误,但我不知道如何解决它 这是我的密码: public类DatabaseHelper扩展了SQLiteOpenHelper{ 私有静态最终字符串数据库\u NAME=“Details\u z”; //专用数据库; 公共数据库助手(上下文) { super(上下文,数据库名称,null,1); //注-1是版本号 //对于数据库 //获取对数据库的引用,稍后我们将

SQLite数据库不断地给出一个
没有这样的列
错误。我尝试了
rawQuery
execQuery
,但得到了相同的结果。我认为这是一个语法错误,但我不知道如何解决它

这是我的密码:

public类DatabaseHelper扩展了SQLiteOpenHelper{
私有静态最终字符串数据库\u NAME=“Details\u z”;
//专用数据库;
公共数据库助手(上下文)
{
super(上下文,数据库名称,null,1);
//注-1是版本号
//对于数据库
//获取对数据库的引用,稍后我们将使用该引用插入
}
@凌驾
//如果数据库需要创建,则自动调用
public void onCreate(SQLiteDatabase db)
{
execSQL(“如果不存在Station(Stationid VARCHAR、Stationname VARCHAR、Stationtype VARCHAR),则创建表,”
+“设施VARCHAR、车站本地VARCHAR、wifi VARCHAR、卫生间VARCHAR、电梯VARCHAR、禁用VARCHAR、日期VARCHAR、评级VARCHAR、评论VARCHAR);”;
}
@凌驾
//数据库版本号更改时自动调用
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion)
{
//bit意味着丢失旧数据,但至少我们会警告这种情况正在发生
android.util.Log.w(this.getClass().getName(),数据库名称
+“数据库升级到版本”+新版本
+“旧数据丢失”);
//db.execSQL(“如果存在详细信息,则删除表”);
onCreate(db);
}
//由Persist1调用以将用户输入的数据插入到3中
//数据库。我们可以使用原始SQL(execSQL),但最好
//使用专门构建的插入方法。
public void insertDetails(String Stationid、String Stationname、,
字符串stationtype、字符串wifi、字符串厕所、字符串升降机、,
字符串禁用,字符串站本地)
{
SQLiteDatabase data=this.getWritableDatabase();
ContentValues行值=新ContentValues();
rowValues.put(“stationid”,stationid);
rowValues.put(“stationname”,stationname);
rowValues.put(“stationtype”,stationtype);
rowValues.put(“wifi”,wifi);
rowValues.put(“厕所”,厕所);
rowValues.put(“提升”,提升);
rowValues.put(“禁用”,禁用);
rowValues.put(“Stationlocal”,Stationlocal);
数据。插入(“站”,空,行值);
data.close();
}
公共字符串搜索站(字符串名称)
{
SQLiteDatabase data=this.getWritableDatabase();
游标q=data.rawQuery(
从Stationname“+”=”所在的站点中选择Stationname
+ename+“‘限制1”,空);
q、 moveToFirst();
返回q.getString(q.getColumnIndex(“Stationname”));
}
public void addRating(字符串名称、字符串数据、字符串分级、,
字符串(ncomment)
{
SQLiteDatabase data=this.getWritableDatabase();
data.execSQL(“更新站集”+“日期=“+n数据
+“,“+”评级=“+n评级+”,“+”评论=”
+ncomment+“其中Stationname=”“+name+”);
data.close();
}
}

编辑:最好只使用
update()
方法:

public void addRating(String name, String nDate, String nRating, String nComment)
{
   SQLiteDatabase data = this.getWritableDatabase();

   ContentValues newValues = new ContentValues();
   newValues.put("date", nDate);
   newValues.put("rating", nRating);
   newValues.put("comments", nComment);

   String[] args = new String[]{name};
   data.update("Station", newValues, "Stationname =?", args);

   data.close(); //close the database

}
添加此导入:

import android.content.ContentValues;

请参见

包括stacktrace可能会有所帮助。如何/在何处创建表?db.execSQL(“创建表,如果不存在站点(Stationid VARCHAR、Stationname VARCHAR、Stationtype VARCHAR、“+”设施VARCHAR、站点本地VARCHAR、wifi VARCHAR、卫生间VARCHAR、电梯VARCHAR、禁用VARCHAR、日期VARCHAR、评级VARCHAR、注释VARCHAR”);列在表中。但我不能确定syntaxI是否也尝试过,同样的结果