получение данных из sqlite и отображение их в виде таблицы - PullRequest
0 голосов
/ 12 февраля 2020

Я полагаю, этот подход не правильный? Я нажал кнопку ОК, но на столе ничего не появляется. Есть ли другой способ получить данные из базы данных? Я хотел бы получить их как тип массива, если это возможно. Я только что добавил больше кодов. Пожалуйста, посмотрите на это, любая помощь будет оценена.

спасибо.

    let filemgr = FileManager.default
               let dirPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)

               let docsDir = dirPaths[0] as String
               databasesPath = docsDir.appending("/infos.db")
               // 데이터베이스 파일이 존재하지 않으면 데이터베이스 파일 생성
               if !filemgr.fileExists(atPath: databasesPath!) {

                   let contactDB = FMDatabase(path: databasesPath)
                   // 데이터베이스를 열고 info 테이블을 생성한다.
                if contactDB.open() {
                       let sql_stmt = "CREATE TABLE IF NOT EXISTS INFOS (ID INTEGER PRIMARY KEY AUTOINCREMENT, WORD TEXT, MEANING TEXT, INFO TEXT)"
                       if !contactDB.executeStatements(sql_stmt) {
                           print("Error \(contactDB.lastErrorMessage())")
                       }
                       contactDB.close()
                   } else {
                       print("Error \(contactDB.lastErrorMessage())")
                   }
               }
           }


@IBAction func dropTable(_ sender: Any) {
    let contactDB = FMDatabase(path: databasesPath)
    if contactDB.open() {


    let myQuery = "DROP TABLE IF EXISTS info"
        contactDB.executeStatements(myQuery)
    }
}



           @IBAction func ok(_ sender: Any) {

               let contactDB = FMDatabase(path: databasesPath)

                    if contactDB.open() {
                      let querySQL = "SELECT word FROM infos"
                        let result: FMResultSet? = contactDB.executeQuery(querySQL, withArgumentsIn: [])
                        allInfo.word = result?.string(forColumn:"word")

                        // next 메서드는 일치하는 레코드가 적어도 하나 이상인지 확인하기 위함
                        tableview.reloadData()
                        contactDB.close()
                    } else {
                        print("Error \(contactDB.lastErrorMessage())")
                    }

           } 

1 Ответ

0 голосов
/ 12 февраля 2020

плз попробуйте добавить в массив, а после в табличную метку ячейку.

var wordtext:[String]!
 @IBAction func ok(_ sender: Any) {

        let contactDB = FMDatabase(path: databasesPath)

                    if contactDB.open() {
                      let querySQL = "SELECT word FROM infos"
                        let result: FMResultSet? = contactDB.executeQuery(querySQL, withArgumentsIn: [])
                        allInfo.word = result?.string(forColumn:"word")

                        wordtext.append(result?.string(forColumn:"word")) 
                        // OR wordtext.append = result?.string(forColumn:"word")

                        // next 메서드는 일치하는 레코드가 적어도 하나 이상인지 확인하기 위함
                        tableview.reloadData()
                        contactDB.close()
                    } else {
                        print("Error \(contactDB.lastErrorMessage())")
                    }
       } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...