글쎄, 변수 resource
은 while
루프에만 적용됩니다. 그렇지 않은 경우에도 각 루프 반복에서 항상 덮어 쓰게됩니다.
대신 while
루프 중에 컬렉션을 위쪽으로, 각각 값을 Add
으로 선언해야합니다. 정수 인 경우 컬렉션을 반환하도록 함수를 다시 정의 할 수도 있습니다.
public List<int> getIconResource(String tblName)
{
SQLiteDatabase db = this.getReadableDatabase();
List<int> myVals = new List<int>();
String getresource = "Select * from " + tblName;
Cursor cursor = db.rawQuery(getresource, null); //null for conditions
if (cursor.moveToFirst())
{
do
{
myVals.Add(cursor.getInt(3));
}
while (cursor.moveToNext());
}
db.close();
return myVals;
}
메모로 ... SQL 쿼리의 문자열 연결은 재난을위한 처방입니다. 계속 진행하기 전에 SQL 인젝션 및 모범 사례를 참고하십시오. 일찍부터 좋은 습관에 빠져 들어야 할 가치가 있습니다.
EDIT/칙
당신은 또한 당신의 결과 집합은 테이블의 쿼리에서 반환 제한하지 않는 한, 당신은 모든 레코드를 얻는 것입니다. 여기에있는 기능은 실제로 실용적인 것이 아니며 그것이 가질 수있는 이점보다 더 많은 문제를 일으킬 수 있습니다. 나는 IconId
에 따라 특정 IconResource
을 반환하는 더 유용 함수의 예로서, 제안 : 물론
public int getIconResource(int iconId)
{
SQLiteDatabase db = this.getReadableDatabase();
String getresource = "select IconResource from IconTable where IconId = ?";
PreparedStatement pstmnt = db.prepareStatement(getresource);
pstrmnt.setString(1, iconId);
ResultSet rset = db.executeQuery();
int iconResource;
if (rset.next())
iconResource = rset.getInt("IconResource");
db.close();
return iconResource;
}
, 테이블 구조의 위하고 있습니다 가정. 위의 사용
이
, 다른 코드에서, 당신은 단순히 IconId
으로이 함수를 호출하고 그러나 필요한 출력을 사용합니다 다음은 위의 매개 변수가있는 쿼리를 사용하여 가능한 모든 SQL 주입 공격을 방지
int iconResource = getIconResource(5); // returns the IconResource for IconId = 5
및 SQL 서버로 전송 된 동적 연결된 문자열의 사용을 피합니다.
내 주전원에서 어떻게 사용할 수 있는지 보여주세요.예를 들어'int data = // 배열의 네 번째 값 '에 열의 한 데이터를 저장하려고합니다. – User9124
"열의 한 데이터"란 무엇을 의미합니까? 예에서는 열 인덱스 3에 액세스하지만 결과 집합을 제한하지 않으므로 테이블의 모든 레코드를 가져 와서 열 인덱스 3에있는 항목 컬렉션을 얻게됩니다. 목록/모음/정수 배열. 콜렉션의 인덱스 위치를 사용하여 개별 항목에 액세스합니다.'int itemZero = getIconResource ("myTable") [0];'컬렉션의 첫 번째 항목을 가져옵니다. 구조 및 데이터 샘플을 포함하여 작업중인 테이블의 예를 들려 줄 수 있습니까? – gmiley
내 나쁜 ... 나는'myDB = new DatabaseHelper (방법) '방식으로 아래에'myDB.getIconResource'를 사용했다. 당신의 예제에서 잘 작동한다. ArrayList resource = myDB.getIconResource (tblnumber);'then'int resource1 = resource.get (0); 첫 번째 값을 얻는 등등. 덕분에 –
User9124