2014-11-30 2 views
0

나는 안드로이드와 어쩌면 바보 같은 질문이 새로 생겼지 만 나는 그것을 얻지 못하고있다. 일부 사람에게 점수를주는 게임을 디자인하고 있습니다. 그래서 나는 사람들이 데이터베이스를 설치하는 동안 저장하고 그들의 점수를 처음에 0으로 설정하고 사용자가 선택한 것에 따라 업데이트 할 것입니다. 여기에 나는 그것이 약 100 명의 이름과 그들의 점수 일 것이므로 어떻게 데이터를 입력해야하는지 알 수 없다. INSERT INTO() 문을 사용하면 100 개의 명령문처럼 사용할 수 있습니다. 그래서 우리가 문자열 등으로 할 수있는 짧은 방법이 있습니다. 그냥 추측. 어떤 도움을 주시면 감사하겠습니다.많은 양의 데이터를 SQLite에 추가하십시오. android

답변

0

거래를 사용하는 것이 좋습니다. beginTransaction()으로 트랜잭션을 사용하려는이 내용을 보관하고 에 모든 삽입을 반복하고 모든 것이 작동하면 setTransactionSuccessful()을 호출하여 일괄 작업으로 처리 할 수 ​​있습니다. 무언가 잘못되면 finally 섹션에서 성공을 설정하지 않고 endTransaction()을 호출합니다. 그러면 롤백이 실행됩니다.

db.beginTransaction(); 
try { 
    makeAllInserts(); 
    db.setTransactionSuccessful(); 
}catch { 
    //Error in between database transaction 
}finally { 
    db.endTransaction(); 
} 

makeAllInserts 기능의 경우,이 같은 밖으로 일할 수 :

public void makeAllInserts() { 
    for(int i = 0; i < myData.size(); i++) { 
     myDataBase = openDatabase(); 
     ContentValues values = new ContentValues(); 
      values.put("name", myData.get(i).getName()); 
      values.put("score", myData.get(i).getScore()); 
     myDataBase.insert("MYTABLE", nullColumnHack, values); 
    } 
} 

당신은 또한 당신이 좋은 링크가 여기에 nullColumnHack에 대해 알고 싶다면 ->https://stackoverflow.com/a/2663620/709671

가 희망을 도움이됩니다.

+0

고마워. 이 아이디어처럼. 그것은 나를 위해 일했습니다. 하지만 지금은 다른 문제가 있습니다. 당신은 확인하시기 바랍니다 : http://stackoverflow.com/questions/27259658/duplicate-data-issue-android-sqlite – Decoder

+0

나는 @ Decoder, 다른 질문에 대답 듣고 기쁘게 생각합니다. 보세요 :) – axierjhtjz

1

SQL 문에 이름이나 점수를 하드 코딩하지 마십시오. 대신 매개 변수를 사용합니다.

var command = new SQLiteCommand() 
command.CommandText = "INSERT INTO Scores (name, score) VALUES(@name, @score)"; 
command.CommandType = CommandType.Text; 

foreach (var item in data) 
{ 
    command.Parameters.Add(new SQLiteParameter("@name", item.Name)); 
    command.Parameters.Add(new SQLiteParameter("@score", item.Score)); 
    command.ExecuteNonQuery(); 
} 

모든 이름과 점수를 반복하면됩니다.

+0

답장을위한 고맙습니다. 필자는 매개 변수의 개념을 모르기 때문에 이것이 어떻게 작동 하는지를 정확히 이해하지 못했습니다. 샘플 코드 또는 그와 비슷한 일부 문서 링크를 제공해 주실 수 있습니까? – Decoder

+0

"SQLite 바인딩 매개 변수"에 대한 Google 검색을 수행하십시오. 위의 코드는 System.Data.SQLite와 C#을 사용합니다. 네가하는 방식은 C에서 다소 다르다. –

관련 문제