作者frankfgt (iverson)
看板javA
标题[问题] Android SQlite的问题请益(急)
时间Sat Mar 21 13:52:11 2015
各位coder好, 小弟不才是半路出师的Java开发菜鸟..
对於SQlite的概念还是很不清楚
想请教一个问题希望可以得到帮忙:( 麻烦一下了 以下是code..
------------------------------------------------------------
我是写一个类似表单的输入Layout
像这样.. <这是insert.java>
KD:________ KT:_________
CD:________ CT:_________
.
.
.
.
共有10个栏位, 现在遇到的问题是, 当我存入资料库时, 在取出来顺序就乱掉了..
now是我的一个Spinner的值, 所以就没有特别去转换,
spinner = (Spinner) findViewById(R.id.mySpinner);
spinner.setAdapter(listAdapter);
now = list[0];
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
now = list[position];
}
try {
cv.put("title", now);
cv.put("TextKD", EditTextKD.getText().toString());
cv.put("TextKT", EditTextKT.getText().toString());
cv.put("TextCD", EditTextCD.getText().toString());
cv.put("TextCT", EditTextCT.getText().toString());
cv.put("TextMT", EditTextMT.getText().toString());
cv.put("TextMD", EditTextMD.getText().toString());
cv.put("TextYT", EditTextYT.getText().toString());
cv.put("TextYD", EditTextYD.getText().toString());
cv.put("TextFus", EditTextFus.getText().toString());
cv.put("TextBel", EditTextBel.getText().toString());
db.insert("table01", null, cv);
} catch (Exception e) {
e.getMessage();
}
----------------------------------------------------------
取出:
Bundle b2 = this.getIntent().getExtras();
if (b2 != null) {
s1 = b2.getInt("key1");// 抓取来自b2的key1
cursor = db.rawQuery("SELECT * FROM table01 WHERE _id = '" + s1
+ "'", null);
cursor.moveToFirst();
title = cursor.getString(1);
if (title.equals("医院UD药局")) {
spinner.setSelection(0);
} else if (title.equals("医院门诊")) {
spinner.setSelection(1);
} else if (title.equals("医院1F")) {
spinner.setSelection(2);
} else if (title.equals("医院7F")) {
spinner.setSelection(3);
}
text = cursor.getString(2);
TextKD = cursor.getString(3);
TextKT = cursor.getString(4);
TextCD = cursor.getString(5);
TextCT = cursor.getString(6);
TextMT = cursor.getString(7);
TextMD = cursor.getString(8);
TextYT = cursor.getString(9);
TextYD = cursor.getString(10);
TextFus = cursor.getString(11);
TextBel = cursor.getString(12);
EditTextKD.setText(TextKD);
EditTextKT.setText(TextKT);
EditTextCD.setText(TextCD);
EditTextCT.setText(TextCT);
EditTextMD.setText(TextMD);
EditTextMT.setText(TextMT);
EditTextYT.setText(TextYT);
EditTextYD.setText(TextYD);
EditTextFus.setText(TextFus);
EditTextBel.setText(TextBel);
-----------------------------------------------
才疏学浅.. 已经找了8小时还得不齐解 , 真的苦无门路去询问..
才上来烦请大家的意见.. 谢谢
想知道他getString的数字到底是哪来的排序阿~"~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.174.188.223
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1426917135.A.D9A.html
※ 编辑: frankfgt (1.174.188.223), 03/21/2015 13:54:31
※ 编辑: frankfgt (1.174.188.223), 03/21/2015 13:54:55
※ 编辑: frankfgt (1.174.188.223), 03/21/2015 13:56:17
1F:推 haha02: ORDER BY? 03/21 14:23
不好意思, 请问是指这个吗?
db.update("table01", cv, "_id=" + s1, null);
※ 编辑: frankfgt (1.174.188.223), 03/21/2015 14:28:20
if (which == 1) {
cursor.moveToPosition(arg2);
// 取得此笔资料的第0个栏位, 即 id
int c = cursor.getInt(0);
Intent i = new Intent(
MainActivity.this, Update.class);
Bundle b = new Bundle();
b.putInt("key1", c);// 将ID放入key1
i.putExtras(b);
startActivity(i);
这是我将主页面带去修改页面的指令
※ 编辑: frankfgt (1.174.188.223), 03/21/2015 14:33:03
2F:推 icydream: 检视table01的栏位顺序 03/21 15:40
请问一下他所谓的栏位顺序该如何检视/修改呢?
是宣告create_table那段里面的顺序吗??
final static String create_table = "CREATE TABLE "
+ table_name
+ "(_id INTEGER PRIMARY KEY, title TEXT, PhotoRef TEXT,"
+ "TextKD TEXT,TextKT TEXT,TextCD TEXT,TextCT TEXT,TextMD TEXT,"
+ "TextMT TEXT,TextYD TEXT,TextYT TEXT,TextFus TEXT,TextBel TEXT,Time
TEXT)";
※ 编辑: frankfgt (1.174.188.223), 03/21/2015 15:58:01
3F:推 haha02: 仔细看了一下 你不要打*把栏位依照你要的顺序写一次不就 03/21 19:50
4F:→ haha02: 好了吗? 03/21 19:50
5F:→ ssccg: 取出时用cursor.getXXX(cursor.getColumnIndex("栏位名")) 03/21 21:47
6F:→ ssccg: 这样保证不会错,就算你後来改sql... 03/21 21:48
7F:→ ssccg: 用*就是create的顺序,select有指定栏位就是指定的顺序 03/21 21:48
8F:→ ssccg: 另外看你的select很单纯,那不要用rawQuery用query比较方便 03/21 21:50
9F:→ Killercat: 你要不要考虑一下ORMLite.... 03/22 13:19
10F:→ frankfgt: 先跪谢各位的建议解答~orm我再研究看看,因为我没听过~ 03/22 13:35
11F:→ Killercat: ORM简单的说,就是用annotation帮你指定资料结构以後 03/22 19:20
12F:→ Killercat: 在帮你写进资料库,你就不用管那麽多可怕的SQL语法了 03/22 19:20
13F:→ Killercat: Android上比较常用的就是ORMLite 你可以试试看 03/22 19:20
14F:→ Killercat: iOS则是有自己的core data写法 不过意思差不多 03/22 19:21
15F:推 Deltaguita: 新手还是摸摸sql语法好 03/24 19:05