C# C声明我的SQLite表不存在,但它确实存在
我正在尝试读取使用DB Browser for SQLite创建的表,但是出现了一个运行时错误,声称数据库没有该表。但确实如此!我创建了它,我可以在DB浏览器中看到它 代码如下:C# C声明我的SQLite表不存在,但它确实存在,c#,database,sqlite,C#,Database,Sqlite,我正在尝试读取使用DB Browser for SQLite创建的表,但是出现了一个运行时错误,声称数据库没有该表。但确实如此!我创建了它,我可以在DB浏览器中看到它 代码如下: private void PopulateGridCustomers() { String conString = Properties.Resources.database; var con = new SqliteConnection(conString);
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;
}
}
一张显示该表的图片确实存在:
导致此问题的原因是什么?如何解决
谢谢
旁白:请让我放松一下,我不是专业的开发人员。我为自己编码
更新:以下是实际的错误消息:
System.Data.SqlServerCe.SqlCeException:'指定的表不存在。
[客户]'
更新2:
以下是数据库的路径:
Data Source=C:\Users\charl\OneDrive\Documentos\SBM\Database\SBMTeste.db;
正如您所看到的,它与在DB浏览器窗口中显示的完全相同。如果省略.db,则会出现我首先描述的错误。如果将文件扩展名放入字符串中,将引发以下错误:
System.Data.SqlServerCe.SqlCeException:'数据库文件可能已损坏。
运行修复实用程序以检查数据库文件。
[Database name=C:\Users\charl\OneDrive\Documentos\SBM\Database\SBMTeste.db]'
更新3:
下面是该表的CREATE语句:
创建表客户
id整数不为NULL唯一,
nome文本不为空,
电传1文本,
电传2文本,
电子邮件文本,
恩德雷索文本,
拜罗文本,
cidade文本,
数据和文本,
数据\u地籍簿文本默认当前\u时间戳,
主密钥ID自动递增,
UNIQUEnome,data_nascimento
SqlCe不是Sqlite
下面是我使用sqlite的代码摘录:
public Equity SearchEquityByEpic(string epic)
{
string query = string.Format("SELECT * from " + Tables.ASSETS_TABLE + " WHERE epic='{0}'", epic);
Log(query);
var command = _connection.CreateCommand(query);
var equities = command.ExecuteQuery<Equity>();
if (equities.Count == 0)
{
return null;
}
Equity ret = equities.First();
return ret;
}
问题是,我在尝试安装应用程序使用SQlite数据库所需的软件包时出错了。我用System.Data.SQLite安装了很多不必要的东西,但没有安装。这样,我的应用程序无法识别.db文件,因此在我的第三次更新中描述了损坏的文件消息。编译器抛出一个错误,声称数据库没有该表。该描述有问题。我通常不希望在编译时检查表的存在性。您能剪切并粘贴实际的错误消息吗,请不要转述?请包含错误,因为我严重怀疑编译器会抱怨表丢失。可能程序正在查看数据库的另一个副本,而不是数据库浏览器。请验证您在SQL ite数据库浏览器中看到的数据库与您的应用程序访问的数据库相同。无论如何,这再次强烈表明C程序与DB浏览器查看的数据库不同。仔细检查设置。@Enigmativity是否有禁止道歉和感激的规定?我们在本网站的问答中没有太多的社会细节。如果你想说谢谢,那就在评论中说吧。如果你没有提供足够的信息,那么,无论如何,在你的问题中添加信息。现在问题已经解决了,在问题中添加任何信息是没有意义的,不,不是。本网站的目的是为未来的读者提供一系列高质量的问题和答案。这不是专门针对提问者的。我们都应该努力提高网站的质量。