首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-native-sqlite-storage -没有这样的表

react-native-sqlite-storage -没有这样的表
EN

Stack Overflow用户
提问于 2018-05-21 07:18:32
回答 1查看 3.9K关注 0票数 0

有人知道连接react-native-sqlite-storage的最佳方式吗?我的调试器在查询后得到“没有这样的表: nameOfTable (代码1)”。

我应该从一个名为"person“的表中获取"id”、"name“和"last name”。我已经连接了位于"/android/app/src/main/assets/mioDB.db“中的预填充数据库("mioDB")。

这是我的小代码:

代码语言:javascript
复制
import React,{Component} from 'react';
import {TextInput,View,Text,TouchableOpacity} from 'react-native';
import { openDatabase } from "react-native-sqlite-storage";

let mioDB = openDatabase('mioDB');

class App extends Component{
  constructor(props){
    super(props);
    this.state={
      name:'',
      lastName:''
    };
  }

  showData=()=>{
    alert('name: '+this.state.name+' lastName: '+this.state.lastName);
  };

  listOfNames=()=>{
    try{
      mioDB.transaction((statement)=>{
        console.log('****************');
        statement.executeSql('SELECT * FROM person',[],(statement,results)=>{
          console.log('****************');
          var len = results.rows.length;
            for (let i = 0; i < len; i++) {
              let row = results.rows.item(i);
              console.log(`Record: ${row.name}`);
            }
        });
      });
    }catch(error){
      alert(error);
    }    
  };    

  render(){    
    return(
      <View style={{marginTop:100}}>
        <TextInput style={{fontSize:20}} placeholder='name' onChangeText={(text)=>this.setState({name:text})}/>
        <TextInput style={{fontSize:20}} placeholder='lastName' onChangeText={(text)=>this.setState({lastName:text})}/>
        <TouchableOpacity style={{width:150,height:50}} onPress={this.showData}><Text>Create db</Text></TouchableOpacity>
        <TouchableOpacity style={{width:150,height:50}} onPress={this.listOfNames}><Text>Show database</Text></TouchableOpacity>
      </View>
    );
  }
}
export default App;

from the debugger

我不知道哪里错了,因为连接系统很容易

EN

回答 1

Stack Overflow用户

发布于 2018-05-23 19:45:56

根据文档(react-native-sqlite-storage),预先填充的文件应该在www目录下,但是您共享的路径不在www目录下。此外,对于预填充的数据库,openDatabase采用以下形式的对象

代码语言:javascript
复制
{name : "testDB", createFromLocation : "~data/mioDB.db"}

其中,datawww目录的子目录。

请进行这两项更改并尝试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50440239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档