我试图在 SQLite DB 中访问一个 Blob s 的柱子, 它最终会指向一个文件或内存的记录。 我试图在 SQLite 中使用. GetBytes 方法来获取一组能代表我数据的字节。 我使用这个方法时不断得到一个无效的例外。 一切似乎都已经就绪,程序编译得很好,但在运行期间,这个例外不断被丢弃。 我四处寻找答案,一切似乎都同意我拥有的代码,所以我损失了这个代码。 不幸的是,我在C# 中找不到任何关于 SQLite 的好文件。 代码如下:
public byte[] Output()
{
byte[] temp = null;
int col = Columns + 1;
if(read.Read())
{
read.GetBytes(col, 0, temp, 0, 2048); //exception is thrown here
}
return temp;
}
我读过DB里的其他栏目, 它们是插图和文本, 但出于某种原因,
新的信息, 这是来自例外的堆叠追踪 :
StackTrace:
at System.Data.SQLite.SQLiteDataReader.VerifyType(Int32 i, DbType typ)
at System.Data.SQLite.SQLiteDataReader.GetBytes(Int32 i, Int64 fieldOffset, Byte[] buffer, Int32 bufferoffset, Int32 length)
at SQLiteSort.Sort.Output() in C:UserscjonesDocumentsVisual Studio 2010ProjectsConsoleApplication1ConsoleApplication1Sort.cs:line 192
at SQLiteSort.Sort.Main(String[] args) in C:UserscjonesDocumentsVisual Studio 2010ProjectsConsoleApplication1ConsoleApplication1Sort.cs:line 72
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
内置例外 :
SQLiteDataReader. VerifyType () 似乎抛出例外, 它正在查看 DbType. Binary 类型所使用的列, 如果该列不是 DbType. Binary、 DbType. String 或 DbType. Guid 。 我反复检查了表格, 并且仍然将列类型显示为 blob 。