我是 React Native Expo 的新手,我正在尝试使用 SQLite 在我的应用程序中本地存储数据。我按照教程并设法使用 expo-sqlite 包设置数据库。一切似乎都工作正常,但是当我尝试使用 DB Browser for SQLite 检查 SQLite 数据库文件中的数据时,我看不到我插入的任何数据。
这是我的代码的简化版本:
async function insertData(data_to_submit) {
try {
const result = db.runAsync(
`INSERT INTO BizUser (
WhiteLabelURL, BizUser, BizUserPassword, BizUserName, BizUserEmail,
BizUserCell, BizUserAddress, BizUserClass, BizLocationLatitude,
BizLocationLongitude, BizLocationDescription, BizFeaturedImage,
ActiveStatus, ActiveStatusDateTime, SignupDateTime, BizLastUpdate,
BizLastUpdateDateTime
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);`,
[
data_to_submit.WhiteLabelURL,
data_to_submit.BizUser,
data_to_submit.BizUserPassword,
data_to_submit.BizUserName,
data_to_submit.BizUserEmail,
data_to_submit.BizUserCell,
data_to_submit.BizUserAddress,
data_to_submit.BizUserClass,
data_to_submit.BizLocationLatitude,
data_to_submit.BizLocationLongitude,
data_to_submit.BizLocationDescription,
data_to_submit.BizFeaturedImage,
data_to_submit.ActiveStatus,
data_to_submit.ActiveStatusDateTime,
data_to_submit.SignupDateTime,
data_to_submit.BizLastUpdate,
data_to_submit.BizLastUpdateDateTime,
]
);
const allUsers = await db.getAllAsync("SELECT * FROM BizUser");
console.log("Data inserted successfully", result);
} catch (error) {
console.error("Error inserting data:", error);
}
}
尽管控制台日志显示数据已成功插入和检索,但当我在 DB Browser for SQLite 中打开 mydb.db 文件时,我看不到任何内容。
有人可以帮我理解为什么数据没有显示在数据库文件中吗?我是否遗漏了一个步骤或误解了 SQLite 如何与 React Native Expo 配合使用的某些内容?
任何建议或解释都会非常有帮助。非常感谢!
我刚刚遇到了同样的问题,并意识到 expo-sqlite 正在根据您提供的数据库文件创建一个新的本地数据库。它实际上并不更新或写入原始源文件,它只是将其用作创建新数据库的种子。
希望有帮助。