• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

강의랑 별개로 SQLite와 관련된 질문도 괜찮을까요?

22.07.22 21:30 작성 조회수 147

0

메모장 어플을 시험삼아 만들어 보고 있습니다

정보를 입력한 뒤 저장 버튼을 누르고 Datetime.Now를 이용해 항목에 대한 작성 당시 현재시간을 표시하고싶은데

어디에  Datetime.Now를 지정해야되는지 잘 모르겠습니다.

일단 new ProductInfo로 지정해야되는거같긴 한데 잘 안되네요...

밑에처럼 작성하면 product1이 활성화가 안되고

위의 product를 지우면 아예 없어져버리고

다른 방법은 생각이 잘 나질 않아요...

        private async void OnSave()

        {

            var product = ProductInfo;

            var product1 = new ProductInfo

            {

                TimeTodo = DateTime.Now

            };

            await App.ProductService.AddProductAsync(product);

            await Shell.Current.GoToAsync("..");

        }

답변 1

답변을 작성해보세요.

0

안녕하세요.

알려주신 코드를 실행해 보지는 않았지만,

좀 의아한 부분이 있습니다.

         private async void OnSave()

        {

            var product = ProductInfo;

            var product1 = new ProductInfo

            {

                TimeTodo = DateTime.Now 

            };

            await App.ProductService.AddProductAsync(product);

            await Shell.Current.GoToAsync("..");

        }

시간 정보는 product1에 넣고 추가는 product에 하시는데 이부분이 잘 못 되어있습니다.

시간정보는 product1에 있습니다.

그리고 SQLLite면 웹 api가 아니고 로컬에 저장하실 것으로 생각되는데,

 

AddProductAsync <-이 메소드 안에 sqllite 인서트관련 코드가 있는 건가요?

 

sqllite의 기본적인 사용방법은

var db = new SQLiteConnection(경로);

db.createTable<테이블>();

그리고 입력을 할때 Insert를 사용하는 것으로 기억하고 있습니다.

이수종님의 프로필

이수종

질문자

2022.07.24

product1로 설정 한 이유는 그냥 product로 하면 이미 선언한 var product = ProductInfo;랑 충돌되는지 이미 정의되어있다고 나와요 그렇다고 둘중 하나를 없애버리면 정말 둘중 하나만 되더라구요 내용만 메모장에 뜨던지 작성시간만 뜨던지...

메서드 확인 방법을 제가 정확히 아는지 모르겠지만 일단 Ctrl 누르면서 클릭했을때 나오는건 이렇게 되어있어요 바꿔야될게 있을까요? 외국 유튜브 보면서 참고한거라 제대로 파악이 안된 문제도 있는거같아요..

        public async Task<bool> AddProductAsync(ProductInfo productInfo)

        {

            if(productInfo.ProductId  > 0 )

            {

                await _database.UpdateAsync(productInfo);

            }

            else

            {

                await _database.InsertAsync(productInfo);

            }

            return await Task.FromResult(true);

        }

product에 시간정보를 주어야 합니다.

지금 질문자님은 produc1에 시간정보를 주기 때문에 시간정보는 저장이 안되는 것입니다.