어제는 Flutter SQLite 세팅부터 간단한 조희 등 설명을 했다. - 참고 바란다
Flutter SQLite 1) (tistory.com)
Flutter SQLite 1)
오늘은 Flutter 에서 SQLite를 쓸 일이 있어 글을 남긴다.. 공식 홈페이지 https://docs.flutter.dev/cookbook/persistence/sqlite Persist data with SQLite How to use SQLite to store and retrieve data. docs.flutter.dev 여기에 보면 공식
developer0524.tistory.com
오늘은 Update 랑 내가 어떻게 사용자한테 보여주는지 알려주려고 한다.
일단 나는 사용자가 Value를 조정하고 저장을 누르면 Update를 해서 보여줘야 한다.
Future<List<ModelGaugeValue>> Historyupdate(int id,double value) async {
final db = await initDB();
List<ModelGaugeValue> list = [];
int result = 0;
try {
result = await db.update(
'$GaugeValueHistory', // table name
{
'value': value,
}, // update post row data
where: 'id = ?',
whereArgs: [id],
);
}catch(e){
print("$e");
}
return list;
}
난 이렇게 id, value를 받아온다.
id 번호가 맞는다면 value를 바꿔주는 코드이다.
위에 result는 나는 list로 걸과 값이 반환이 되는 줄 알았다!
Select처럼 그렇지만 Update는 int 값 0 , 1로 결괏값을 반환이 된다 ,, 신기했다
이렇게 업데이트하고 view 쪽으로 온다 그럼 바뀐 값이 다시 반영되어야 한다.
그래서 나는 FutureBuilder로 select를 불러오도록 했다. 쓰시는 분 편한 대로 하면 될 것 같다.
return FutureBuilder(
future: dbHelperHistory.selectGaugeHistroyday(StateDay,EndDay),
builder: (BuildContext context, AsyncSnapshot snapshot) {
//해당 부분은 data를 아직 받아 오지 못했을 때 실행되는 부분
if (!snapshot.hasData) {
return CircularProgressIndicator(); // CircularProgressIndicator : 로딩 에니메이션
}
//error가 발생하게 될 경우 반환하게 되는 부분
else if (snapshot.hasError) {
return const Padding(
padding: EdgeInsets.all(8.0),
child: Text(
"loading Data",
style: TextStyle(
color: Colors.green,
fontSize: 22,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w700),
),
);
}
// 데이터를 정상적으로 받아오게 되면 다음 부분을 실행하게 되는 부분
else {
return Padding(
padding: EdgeInsets.fromLTRB(0, 0, 0, 0),
child: Text(
'${double.parse(snapshot.data[j].value.toString()).toStringAsFixed(2)}',
style: TextStyle(
color: (snapshot.data[j].value! < 2)
? Colors.green
: Colors.red,
fontSize: 22,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.w700),
),
);
}
});
}
참고하길 바란다. 나는 날짜 별로 데이터를 보여줄 거라 StartDay (오타 남 ,,) , EndDay를 파라미터로 줘서 그 기간만 다시 보여주게 했다.
Delete는 내가 지금 하는 프로젝트에서는 필요가 없어서 안 했다.
내가 한 코드가 잘한 거는 아니지만 참고해서 개발이 도움이 되었으면 한다.
다음에는 더 유익한 정보를 가지고 오겠습니다 ~~!~!
'Flutter' 카테고리의 다른 글
Flutter Package Sizer (2) | 2023.10.25 |
---|---|
StatefulWidget의 LifeCycle(생명주기) (2) | 2023.09.19 |
생성자와 널 세이프티 이해하기 (0) | 2023.07.22 |
Flutter Setstate ? (0) | 2023.07.18 |
Flutter SQLite 1) (1) | 2023.07.13 |