如何使用System.Data.SQLite组件获得完整性检查PRAGMA的结果?
我正在将直接调用非托管sqlite3.dll库的项目转换为使用托管包装SQLite.NET的项目。困扰我的一个转换是,如何获得PRAGMA integrity_check命令的结果?根据此命令的SQLite.NET帮助文件 如果发现任何问题,则返回一个字符串 是对所有问题的描述。如果一切正常,就可以了 返回 问题是,如何访问单个字符串结果 下面是我用来执行命令的C++/CLI代码如何使用System.Data.SQLite组件获得完整性检查PRAGMA的结果?,sqlite,c++-cli,Sqlite,C++ Cli,我正在将直接调用非托管sqlite3.dll库的项目转换为使用托管包装SQLite.NET的项目。困扰我的一个转换是,如何获得PRAGMA integrity_check命令的结果?根据此命令的SQLite.NET帮助文件 如果发现任何问题,则返回一个字符串 是对所有问题的描述。如果一切正常,就可以了 返回 问题是,如何访问单个字符串结果 下面是我用来执行命令的C++/CLI代码 SQLiteConnection^ db = gcnew SQLiteConnection("DataSource=
SQLiteConnection^ db = gcnew SQLiteConnection("DataSource=MyTest.db");
try
{
db->Open();
SQLiteCommand^ cmdIntegrity = gcnew SQLiteCommand("PRAGMA integrity_check;", db);
cmdIntegrity->ExecuteNonQuery();
db->Open();
} finally
{
delete (IDisposable^) db;
}
谢谢你的帮助,
Phil Coveney如果我理解正确,您正在使用精简库。我浏览了中SQLiteCommand的代码,发现了一个类似于ADO.net的函数,可以在您的案例中使用 因此,与其使用
cmdIntegrity->ExecuteNonQuery();
您应该编写类似于我在C++/CLI方面没有经验的内容,但其含义应该很清楚
String ^result = cmdIntegrity->ExecuteScalar<String^>();
if(result->Equals("ok"))
{
db->Open();
}
else
{
//manage the error
}
我在库中使用了类似的技术,在您的情况下,应该不会有太大的不同