2016-09-03 6 views
1

나는 안드로이드 개발에 새로운입니다. 제발 도와주세요. 어떻게 열 이름을 Sqlite 데이터베이스에 동적으로 저장할 수 있습니까?어떻게 SQLite 데이터베이스에 열을 동적으로 android에 저장할 수 있습니까?

public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    db.execSQL(
    "create table contacts " + 
    "(id integer primary key, name text,phone text,email text, street text,place text)" 
); 
} 

을 그리고 여기에 아래의 쿼리를 삽입 :

여기 아래에 데이터베이스를 만듭니다

public boolean insertContact (String name, String phone, String email,String street,String place)          
{ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    ContentValues contentValues = new ContentValues(); 
    contentValues.put("name", name); 
    contentValues.put("phone", phone); 
    contentValues.put("email", email);  
    contentValues.put("street", street); 
    contentValues.put("place", place); 
    db.insert("contacts", null, contentValues); 
    return true; 
} 
+0

동적으로 열 이름을 변경하면 안됩니다. 변경해야 할 열 이름을 변경해야합니다. 열 값을 동적으로 변경하지 마십시오. 열 이름을 변경하려면 ALTER 명령 –

+0

@brahmyadigopula 1을 사용하십시오. 하나의 텍스트 뷰가 있다고 가정합니다. 데이터베이스에 저장할 수 있습니다. 2.Suppose 나는 또한 내 .xml 파일에서 두 textview increse 어떻게 Sqlite 데이터베이스에 동적으로 변경 삽입 쿼리없이 저장할 수 있습니다. – user6789978

+0

당신은 동적으로 더 많은 열이 있다면 당신은 뜻? 그때 당신은 열을 계산하고 그것을 위해 테이블을 만들 필요가 있습니다. 테이블을 만드는 동안 default.and 열을 원하는 열에 값을 넣습니다. –

답변

2

당신이 당신의 onUpgrade() 메소드에 대한 ALTER TABLE 기능을 사용할 수 있습니다, 다음과 같이 :

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

// If you need to add a column 
if (newVersion > oldVersion) { 
    db.execSQL("ALTER TABLE foo ADD COLUMN new_column INTEGER DEFAULT 0"); 
} 
} 

확실히 SQLite는 열 정의에 따라 달라집니다

0

새 행을 삽입하기 위해 테이블의 모든 열에 값을 제공 할 필요는 없습니다. 당신은 당신의 방법에서 코드를 변경할 수 있습니다

public long insertContact(ContentValues contentValues) { 
    return db.insert("contacts", null, contentValues); 
} 

은 호출 함수가 사용 가능한 모든 열, 일부 또는 없음이 될 수있는 삽입하고자하는 값을 결정하자. 지정되지 않은 값은 표에 null이됩니다. 예를 들어 함수를 호출하는 않는 경우 :

EditText name, email; 

// ... 

ContentValues values = new ContentValues(); 
values.put("name", name.getText().toString()); 
values.put("email", email.getText().toString()); 
insertContact(values); 

은 "이름"을 기입 "이메일"을 열 null의 나머지 부분과 데이터베이스에 새 행을 삽입합니다.

관련 문제