android logcat 错误 求解

java.lang.RuntimeException:UnabletostartactivityComponentInfo{com.xmobileapp.contact/... java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xmobileapp.contact/com.xmobileapp.contact.Contact}: android.database.sqlite.SQLiteException: near "foreign": syntax error: , while compiling: SELECT _id, foreign, chinese FROM contacts ORDER BY _id

求大神解答 可以加分多少都可以
展开
 我来答
洪昭昭Gr
2013-05-11 · 超过20用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:48.2万
展开全部

near "foreign": syntax error: , while compiling ←这货是诊断依据


报错原因是因为foreign是SQLite的保留关键字,不能被当做普通的自定义列名在select语句中使用。


在有语法高亮功能的编辑器中显示该SQL语句如下图所示


可以看出foreign被parser当做了关键字,而不是你想要查询的contacts表中的foreign列。


从规范角度,避免在命名时使用SQL关键字。


这是查看全部SQLite自保留关键字的传送门→ http://www.sqlite.org/lang_keywords.html


如图所示,关键字'foreign'赫然在列→_→。


建议:

    你确定你的contacts表中存在名为foreign的列吗?请检查。

    如果确实存在并需要使用,可以为foreign加引号。

    原SQL语句改为:SELECT _id, 'foreign', chinese FROM contacts ORDER BY _id

    

    你还可以考虑将列名替换为'overseas',如果是想按国内国外区分不同contact的话。


以上。

来自:求助得到的回答
金山毒霸
2024-10-31 广告
大部分系统错误,是因为某些DLL文件丢失造成的,比如未安装DirectX9或DirectX 9.0组件已损坏、缺少Visual C ++库、未安装.net库。解决方法如下:一、 手动解决方法1、先确定电脑操作系统是多少位的,现在的电脑一般都... 点击进入详情页
本回答由金山毒霸提供
匿名用户
2013-05-07
展开全部
SELECT _id, `foreign`, chinese FROM contacts ORDER BY _id

可以试试这样写的SQL语句
更多追问追答
追问
怎么改代码啊
追答
只是SQL语句问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式