Exemple #1
0
 /// <summary>
 /// Проверка существования столбца
 /// </summary>
 /// <param name="db"></param>
 /// <param name="table_name"></param>
 /// <param name="column_name"></param>
 /// <returns></returns>
 internal static bool CheckColumn(this DatabaseSqlite db, string table_name, string column_name)
 {
     if (!db.IsConnected())
     {
         db.Connect();
     }
     if (db.IsConnected())
     {
         using (var command = db.connection.CreateCommand())
         {
             try
             {
                 string query = $"PRAGMA table_info({table_name});";
                 command.CommandText = query;
                 using (var reader = command.ExecuteReader())
                 {
                     while (reader.Read())
                     {
                         var name = reader["name"]?.ToString() ?? string.Empty;
                         if (name.Equals(column_name))
                         {
                             return(true);
                         }
                     }
                 }
             }
             catch (Exception ex)
             {
                 db.CallError(ex.Message, ex.StackTrace);
             }
         }
     }
     return(false);
 }
Exemple #2
0
 /// <summary>
 /// Проверка существования столбцов
 /// </summary>
 /// <param name="db"></param>
 /// <param name="table_name"></param>
 /// <param name="columns"></param>
 /// <param name="dif_columns">коллекция столбцов, который отсутствуют в таблице</param>
 /// <returns>true - если таблица соответствует схеме</returns>
 internal static bool TryCheckColumns(this DatabaseSqlite db, string table_name, IEnumerable <SchemasColumn> columns, out IEnumerable <SchemasColumn> dif_columns)
 {
     if (!db.IsConnected())
     {
         db.Connect();
     }
     if (db.IsConnected())
     {
         using (var command = db.connection.CreateCommand())
         {
             try
             {
                 string query = $"PRAGMA table_info({table_name});";
                 command.CommandText = query;
                 using (var reader = command.ExecuteReader())
                 {
                     List <string> list_columns = new List <string>();
                     while (reader.Read())
                     {
                         var name = reader["name"]?.ToString() ?? string.Empty;
                         if (!string.IsNullOrWhiteSpace(name))
                         {
                             list_columns.Add(name);
                         }
                     }
                     dif_columns = columns.Where(o => list_columns.Find(x => x.Equals(o.Name)) == null).ToArray();
                     return(dif_columns.Count() == 0);
                 }
             }
             catch (Exception ex)
             {
                 db.CallError(ex.Message, ex.StackTrace);
             }
         }
     }
     dif_columns = Enumerable.Empty <SchemasColumn>();
     return(false);
 }