2017-07-27 126 views
0

我想設置列值爲字符串。查詢設置android studio中的sql數據庫列值

這是DatabaseHelperClass方法:在這裏我想設置日期

public void setDate(String name, String date){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    String query = " SET " + COL3 + " TO " + date + " FROM " + TABLE_NAME + 
      " WHERE " + COL2 + " = " + name; 
    db.execSQL(query); 

和類:

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.elevator_info); 

    myDB = new DatabaseHelper(this); 
    btnAddDate = (Button) findViewById(R.id.btnAddDate); 
    editText = (EditText) findViewById(R.id.editTextDate); 

    Intent receivedIntent = getIntent(); 
    selectedID = receivedIntent.getIntExtra("id", -1); 
    selectedName = receivedIntent.getStringExtra("name"); 

    btnAddDate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String newDate = editText.getText().toString(); 
      myDB.setDate(selectedName,newDate); 
     } 
    }); 

} 

這是我的logcat:

E/SQLiteLog(8210): (1) near "TO": syntax error 
D/AndroidRuntime(8210): Shutting down VM 
E/AndroidRuntime(8210): FATAL EXCEPTION: main 
E/AndroidRuntime(8210): Process: com.example.goshoy.elevatorapp, PID: 8210 
E/AndroidRuntime(8210): android.database.sqlite.SQLiteException: near "TO": 
syntax error (code 1): , while compiling: SELECT date TO date1 FROM 
elevatordatabase WHERE name = bag6 

我做這個:

String query = " UPDATE " + TABLE_NAME + " SET " + COL3 + " = " + 
date + " WHERE " + COL2 + " = " + name; 

的logcat:

E/AndroidRuntime(10063): android.database.sqlite.SQLiteException: no such 
column: date1 (code 1): , while compiling: UPDATE elevatordatabase SET date 
= date1 WHERE name = bag 

洙我這樣做:

SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues cv = new ContentValues(); 
    cv.put(COL3,date); 
    db.update(TABLE_NAME , cv , COL2 + " = " + name, null); 

的logcat:

 E/AndroidRuntime(12444): 
    android.database.sqlite.SQLiteException: no such column: bag4 
    (code 1): , while compiling: UPDATE elevatordatabase SET date=? 
    WHERE name = bag4 

回答

1

使用這一個

String query = "update "+TABLE_NAME +" SET " + COL3 + " = '" + date + "' WHERE " + COL2 + " = '" + name+"'"; 

單qoute添加到烏爾查詢data1和名稱。 use this

+0

編輯我的問題。 – Goshoy

+0

但它仍然不起作用。說沒有這樣的專欄。 – Goshoy

+0

再次嘗試以單個qout –

2

檢查:

語法UPDATE的查詢與WHERE子句。

UPDATE table_name 
SET column1 = value1, column2 = value2...., columnN = valueN 
WHERE [condition]; 

Reference

+0

編輯我Qeustion – Goshoy

+0

@Goshoy有一個在您選擇的查詢問題檢查 - [語法](https://www.tutorialspoint.com/sqlite/sqlite_select_query.htm) –

0

試試這個,它真的很簡單:

ContentValues cv = new ContentValues(); 
cv.put("ColumnName3","Value"); 
db.update("TABLE_NAME", cv , ID + " = " + YourRowID, null); 

這部分是在上面的線where子句

ID + " = " + YourRowID 
+0

我使用這個時,我只是把信息在數據庫中,但現在我從列表視圖中得到一個點擊項目的ID,並希望把信息放在該特定項目的第三列。 – Goshoy

+0

立即看到我的編輯 – AndroidGeek

+0

再次編輯我的文章。 – Goshoy