【问题标题】:System.Data.SQLite.SQLiteException: SQLite error no such table errorSystem.Data.SQLite.SQLiteException:SQLite 错误没有这样的表错误
【发布时间】:2023-03-08 06:14:01
【问题描述】:

我正在尝试对 VS 2010 中的解决方案运行一些单元测试,并尝试使用 SQLite 作为我的数据库。问题是我收到以下错误:

"测试方法AECI.Clio.RecordableIncidentRate_Test.TestClass.QueryDataTest抛出异常: System.Data.SQLite.SQLiteException:SQLite 错误 没有这样的表:dbo.vDimIncident"

我已经使用我的 SQLBrowser 仔细检查了我的表是否在那里。我什至尝试将表的名称从 vDimIncident 更改为 dbo.vDimIncident 无济于事。

我不确定自己做错了什么。这是我的错误跟踪:

System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain)
System.Data.SQLite.SQLiteCommand.BuildNextCommand()
System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
System.Data.SQLite.SQLiteDataReader.NextResult()
System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
System.Data.SQLite.SQLiteCommand.ExecuteDbDataReader(CommandBehavior behavior)
System.Data.Common.DbCommand.ExecuteReader()
System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
AECI.Clio.RecordableIncidentRate.Harvester.QueryData(HarvestTargetTimeRangeUTC ranges) in C:\tfsprod\AECI.Clio.RecordableIncidentRate\Harvester.cs: line 43
AECI.Clio.RecordableIncidentRate_Test.TestClass.HarvesterHandle.QueryDataTest(HarvestTargetTimeRangeUTC ranges) in C:\tfsprod\AECI.Clio.RecordableIncidentRate_Test\TestClass.cs: line 167
AECI.Clio.RecordableIncidentRate_Test.TestClass.QueryDataTest() in C:\tfsprod\AECI.Clio.RecordableIncidentRate_Test\TestClass.cs: line 54

我不确定这是否与任何事情有关,但这是我的连接字符串:

public void ConfigureHarvester(System.Configuration.Configuration configuration)
{
    context = new DataClassesDataContext(new System.Data.SQLite.SQLiteConnection(@"Data Source= C:\tfsprod\C#SQLite\Community.CsharpSqlite.shell\bin\Debug\test.db"));

}

【问题讨论】:

  • 你是否仔细检查过你正在加载好的数据库文件(路径检查)?
  • @cichy - 是的,路径很好,可以在SQLite数据库浏览器中打开db文件。

标签: c# sqlite database-connection


【解决方案1】:

我想通了。我必须转到 dbml 文件,然后转到数据类的属性并删除“dbo”。从我的表名前面。我不知道这是否是你正确的做法,但它确实有效。

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 2018-06-21
    • 2010-12-29
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多