gpt4 book ai didi

C# 声称我的 SQLite 表不存在,但它确实存在

转载 作者:行者123 更新时间:2023-12-04 07:51:08 24 4
gpt4 key购买 nike

我正在尝试读取我使用 DB Browser for SQLite 创建的表,但有一个运行时错误,声称数据库没有该表。但确实如此!我创建了它,我可以在 DB Browser 中看到它。
这是代码:

    private void PopulateGridCustomers()
{
String conString = Properties.Resources.database;
var con = new SqliteConnection(conString);
try
{
con.Open();
Console.WriteLine(con.State);
SqliteCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT * FROM Clientes";
using (SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(cmd.CommandText, conString))
{
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
gridCustomers.DataSource = dt;
}
}
一张显示该表的图片确实存在:
enter image description here
什么可能导致此问题以及如何解决?
谢谢
P.S.:请放过我,我不是专业的开发者。我为自己编码。
更新:这是实际的错误消息:
System.Data.SqlServerCe.SqlCeException: 'The specified table does not exist. 
[ Clientes ]'
更新 2:
这是数据库的路径:
Data Source=C:\Users\charl\OneDrive\Documentos\SBM\Database\SBMTeste.db;
如您所见,它与 DB Browser 窗口中显示的完全相同。如果我省略“.db”,就会出现我第一次描述的错误。如果我将文件扩展名放在字符串中,则会引发以下错误:
System.Data.SqlServerCe.SqlCeException: 'The database file may be corrupted. 
Run the repair utility to check the database file.
[ Database name = C:\Users\charl\OneDrive\Documentos\SBM\Database\SBMTeste.db ]'
更新 3:
这是表的 CREATE 语句:
CREATE TABLE "Clientes" (
"id" INTEGER NOT NULL UNIQUE,
"nome" TEXT NOT NULL,
"telefone1" TEXT,
"telefone2" TEXT,
"email" TEXT,
"endereço" TEXT,
"bairro" TEXT,
"cidade" TEXT,
"data_nascimento" TEXT,
"data_cadastro" TEXT DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY("id" AUTOINCREMENT),
UNIQUE("nome","data_nascimento")
)

最佳答案

问题是我在尝试安装我的应用程序使用 SQlite 数据库所需的包时搞砸了。我最终安装了很多不必要的东西并且使用 System.Data.SQLite 丢失了.这样我的应用程序就无法识别 .db 文件,因此在我的第三次更新中描述了“损坏的文件”消息。

关于C# 声称我的 SQLite 表不存在,但它确实存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66976327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com