|
|
|
Android SQLite หัด Insert ข้อมูล แต่มัน Insert ไม่ได้อะครับ ทำไงดี |
|
|
|
|
|
|
|
โค้ดมี 3 ไฟล์อะครับ แต่ผมเอาไฟล์โค้ดหลักๆให้ดูนะครับ คือ โค้ด MainActivity มันแค่ไว้ แค่ส่ง Intent ไปหน้าอื่น
อันแรกเป็น โค้ด ของการ หน้าที่จะ Insert อะครับ ส่วนหน้าออกแบบ XML ของ Insert แค่ มี ปุ่ม Button 1 อัน กับ Editext 1 ช่องให้ใส่ชื่อแค่นั้นครับ
Code (Java)
package ken.app.sqldota;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* Created by Dell on 16/10/2556.
*/
public class add extends Activity {
SQLiteDatabase mDb;
database mHelper;
Cursor mCursor;
Button btn;
EditText edt;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_activity);
mHelper = new database(this);
init();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = edt.getText().toString();
long in=mHelper.insertTest(name);
if(in<=0){
Toast.makeText(add.this, "Please Enter Name Team ", Toast.LENGTH_SHORT).show();
}
else
{
/* mDb.execSQL("INSERT INTO "+ database.TABLE_NAME +" (" +database.COL_NAME +") VALUES ('"+name+"');"); */
Toast.makeText(add.this, "Enter Team "+name+" Succeed ", Toast.LENGTH_SHORT).show();
}
}
});
// mHelper.onUpgrade(mDb, 1, 1);
}
private void init()
{
btn = (Button) findViewById(R.id.button);
edt = (EditText) findViewById(R.id.editText);
}
}
อันที่ 2 โค้ด ไฟล์ Database
Code (Java)
package ken.app.sqldota;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
/**
* Created by Dell on 16/10/2556.
*/
public class database extends SQLiteOpenHelper{
private static final String DB_NAME = "Dota";
private static final int DB_VERSION = 1;
public static final String TABLE_NAME = "Product";
public static final String COL_NAME = "name";
public database(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "+ TABLE_NAME +" (_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_NAME + " TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i2) {
db.execSQL("DROP TABLE IF EXISTS "+ TABLE_NAME);
onCreate(db);
}
public long insertTest(String name)
{
SQLiteDatabase mDb = this.getWritableDatabase();
ContentValues values=new ContentValues();
values.put(COL_NAME, name);
mDb.close();
return mDb.insert(TABLE_NAME,null, values);
}
}
ช่วยทีครับ
คือลองมาหลายโค้ดแล้ว ก็เปลี่ยนไป เปลี่ยนมา สลับโค้ดมั่วไปมั่วมา ก็ยังไม่ได้ซักที ไม่รู้เป็นอะไร อาการตอนแรกกดปุ่ม button save ได้แต่เหมือนข้อมูลไม่เข้า แบบไปลองดู หน้า Select ไม่โผล่ข้อมูลเลย แต่แก้ไปแก้มาตอนนี้กดปุ่ม save แล้ว error เลย
Tag : Mobile, Android
|
|
|
|
|
|
Date :
2013-10-17 20:37:35 |
By :
kenshero |
View :
1330 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่มั่วหรอกถ้าคุณตั้งใจที่จะเข้าใตมันครับ
Android Add Insert Data to SQLite Database (Android SQLite)
|
|
|
|
|
Date :
2013-10-17 21:12:57 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กระทู้ผมก็อ่านแล้วลอง ดัดแปลงตามแล้วครับ มันก็ไม่ได้ซักที ผมไม่รู้ว่าผิดตรงไหน
|
|
|
|
|
Date :
2013-10-18 15:33:26 |
By :
kenshero |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยดูทีครับ อันนี้โค้ดใหม่แก้ให้คล้ายๆ ตัวอย่างที่ทาง Admin ทำไว้เลย
นี่โค้ดไฟล์ database ครับ
Code (Android-Java)
package ken.app.sqldota;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
/**
* Created by Dell on 16/10/2556.
*/
public class database extends SQLiteOpenHelper{
private static final String DB_NAME = "Dota";
private static final int DB_VERSION = 1;
public static final String TABLE_NAME = "Product";
public static final String COL_NAME = "name";
public database(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "+ TABLE_NAME +" (_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_NAME + " TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i2) {
db.execSQL("DROP TABLE IF EXISTS "+ TABLE_NAME);
onCreate(db);
}
public long insertTest(String name)
{
SQLiteDatabase mDb = this.getWritableDatabase();
// mDb.execSQL("INSERT INTO "+TABLE_NAME +" (" +COL_NAME +") VALUES ('"+name+"');");
ContentValues values=new ContentValues();
values.put(COL_NAME, name);
long row= mDb.insert(TABLE_NAME,null, values);
mDb.close();
return row;
}
}
นี่โค้ดไฟล์หน้า Add หรือ Insert
Code (Android-Java)
package ken.app.sqldota;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* Created by Dell on 16/10/2556.
*/
public class add extends Activity {
SQLiteDatabase mDb;
database mHelper;
Cursor mCursor;
Button btn;
EditText edt;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_activity);
init();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(savedata()){
//Toast.makeText(add.this, "Please Enter Name Team ", Toast.LENGTH_SHORT).show();
Intent newActivity = new Intent(add.this,MainActivity.class);
startActivity(newActivity);
}
/*else
{
mDb.execSQL("INSERT INTO "+ database.TABLE_NAME +" (" +database.COL_NAME +") VALUES ('"+name+"');");
Toast.makeText(add.this, "Enter Team "+name+" Succeed ", Toast.LENGTH_SHORT).show();
}*/
}
});
// mHelper.onUpgrade(mDb, 1, 1);
}
private boolean savedata() {
mHelper = new database(this);
long in = mHelper.insertTest(edt.getText().toString());
if(in<=0)
{
Toast.makeText(add.this, "Please Enter Name Error Team ", Toast.LENGTH_SHORT).show();
return false;
}
Toast.makeText(add.this, "Enter Team "+edt.getText().toString()+" Succeed ", Toast.LENGTH_SHORT).show();
return true;
}
private void init()
{
btn = (Button) findViewById(R.id.button);
edt = (EditText) findViewById(R.id.editText);
}
}
แต่มัน Add ไม่เข้าจริงๆครับ ไม่รู้เพราะอะไรผมงงหาที่แก้ไม่ได้เลย ผมมือใหม่ครับหัด Sqlite แต่ไม่เคยใช้ Mysql เลยครับ
|
|
|
|
|
Date :
2013-10-19 00:57:59 |
By :
kenshero |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้ามันไม่เข้ามันก็จะต้องมี Error แจ้งครับ ลอง Debug ไล่ดูครับ
|
|
|
|
|
Date :
2013-10-19 07:22:08 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44.// mDb.execSQL("INSERT INTO "+TABLE_NAME +" (" +COL_NAME +") VALUES ('"+name+"');");
45.ContentValues values=new ContentValues();
46.
47.values.put(COL_NAME, name);
ตรงคำสั่ง insert มัน ปิดไว้อะครับ ลองเอา // ในบรรทัด 44 ออกครับ
อีกอย่างลองดาวโหลด sqliteadmin มาลองเล่นดูครับ
สร้าง database เพื่อทดสอบเองในเครื่องเราก่อน create db ผ่านไหม
หลังจากนั้นก็ ทดสอบคำสั่ง insert selcect ตามต้องการ โปรแกรมนี้จะแจ้งเลยว่าเวลาเรารันคำสั่งมันพลาดตรงไหน
พอได้คำสั่งที่ถูกต้องเราก็ค่อยเอาไปประยุกใส่ตัวแปรทีหลังครั้บ แบบนี้ถูกแน่ๆ
ปล.ผมก็รู้ไม่มากอะนะครับ เอาเป็นว่าผมทำแบบนี้ละกัน อาจจะมีวิีธีที่ดีกว่านี้ก็ได้
|
|
|
|
|
Date :
2013-10-19 12:43:07 |
By :
ababydroid |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|