Flutter SQLite(2)

2023. 7. 14. 08:04·Flutter
728x90

어제는 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는 내가 지금 하는 프로젝트에서는 필요가 없어서 안 했다.
내가 한 코드가 잘한 거는 아니지만 참고해서 개발이 도움이 되었으면 한다.


다음에는 더 유익한 정보를 가지고 오겠습니다 ~~!~!

728x90
LIST

'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
'Flutter' 카테고리의 다른 글
  • StatefulWidget의 LifeCycle(생명주기)
  • 생성자와 널 세이프티 이해하기
  • Flutter Setstate ?
  • Flutter SQLite 1)
Mr. Joo
Mr. Joo
  • Mr. Joo
    삽질의 시작
    Mr. Joo
  • 전체
    오늘
    어제
    • 분류 전체보기 (217) N
      • Flutter (70)
      • Android (9)
      • Swift (5) N
      • React (11)
      • 인공지능 (4)
      • CS (10)
      • 개발 뉴스 (105) N
      • IT 기기 (1)
      • 알면 유용한 정보 (2)
  • 인기 글

  • 태그

    오늘의 뉴스
    react
    오늘의 개발 뉴스
    기술 뉴스
    앱개발
    기술
    오늘의 이슈
    Dart 기초
    앱
    앱 개발
    플러터
    뉴스
    개발
    뉴스 모음
    오늘의 기술 뉴스
    이슈
    개발 이슈
    DART
    개발 뉴스
    Flutter
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Mr. Joo
Flutter SQLite(2)
상단으로

티스토리툴바