Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用System.Data.SQLite组件获得完整性检查PRAGMA的结果?_Sqlite_C++ Cli - Fatal编程技术网

如何使用System.Data.SQLite组件获得完整性检查PRAGMA的结果?

如何使用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=

我正在将直接调用非托管sqlite3.dll库的项目转换为使用托管包装SQLite.NET的项目。困扰我的一个转换是,如何获得PRAGMA integrity_check命令的结果?根据此命令的SQLite.NET帮助文件

如果发现任何问题,则返回一个字符串 是对所有问题的描述。如果一切正常,就可以了 返回

问题是,如何访问单个字符串结果

下面是我用来执行命令的C++/CLI代码

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
}
我在库中使用了类似的技术,在您的情况下,应该不会有太大的不同