Слияние кода завершено, страница обновится автоматически
public async Task<bool> IsTableExistsAsync(string tableName)
{
bool exists;
string databaseName = DatabaseName;
try
{
if (DatabaseType == DatabaseType.SQLite)
{
string sql = $"SELECT count(*) FROM sqlite_master WHERE type='table' AND name='{tableName}'";
using var connection = GetConnection();
exists = await connection.ExecuteScalarAsync<int>(sql) == 1;
}
else if (DatabaseType == DatabaseType.PostgreSQL || DatabaseType == DatabaseType.SQLServer)
{
string sql = $"SELECT COUNT(*) FROM information_schema.tables WHERE table_catalog = '{databaseName}' AND table_name = '{tableName}'";
using var connection = GetConnection();
exists = await connection.ExecuteScalarAsync<int>(sql) == 1;
}
else
{
string sql = $"SELECT COUNT(*) FROM information_schema.tables WHERE (table_schema = '{databaseName}') AND table_name = '{tableName}'";
using var connection = GetConnection();
exists = await connection.ExecuteScalarAsync<int>(sql) == 1;
}
}
catch
{
try
{
string sql = $"select 1 from {tableName} where 1 = 0";
using var connection = GetConnection();
exists = await connection.ExecuteScalarAsync<int>(sql) == 1;
}
catch
{
exists = false;
}
}
return exists;
}