2017-07-27 6 views
0

列の値をStringに設定しようとしています。androidスタジオで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:UPDATEクエリの

構文WHERE句を使用して:この

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

答えて

1

使用は、この1

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

はDATA1と名のウルクエリに単一qouteを追加します。 use this

+0

私の質問を編集しました。 – Goshoy

+0

しかし、それでも動作しません。そのような列はありません。 – Goshoy

+0

シングルクエットでもう一度試してください –

2

チェック。

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

Reference

+0

は私Qeustion – Goshoy

+0

を編集上の行では、where句である@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); 

この部分は

ID + " = " + YourRowID 
+0

私はちょうどデータベースに情報を入れているが、これはListviewからクリックしたアイテムのIDを取得し、その特定のアイテムの3番目のカラムに情報を入れたいときに使う。 – Goshoy

+0

私の今編集を参照してください – AndroidGeek

+0

私の投稿を編集しました。 – Goshoy

関連する問題