Advertisement
Guest User

Shown Code

a guest
Nov 15th, 2019
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.37 KB | None | 0 0
  1. public static void uploadFieldCollection(DatabaseUploadCollectionParameters Parameters)
  2.         {
  3.             using (SqlConnection DatabaseConnection = new SqlConnection($"Server={Parameters.Server};Database={Parameters.Database};User Id={Parameters.UserID};Password={Parameters.Password};MultipleActiveResultSets=True"))
  4.             {
  5.                 DatabaseConnection.Open();
  6.                 foreach (FieldCollection fieldCollection in Parameters.FieldCollections)
  7.                 {
  8.                     //Gets Column Names From SQL Table
  9.                     List<String> ColumnNames = new List<String>();
  10.                     SqlCommand GetTableColumns = new SqlCommand($"SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('{fieldCollection.Name}')", DatabaseConnection);
  11.                     SqlDataReader ColumnNameReader = GetTableColumns.ExecuteReader();
  12.                     while (ColumnNameReader.Read())
  13.                         ColumnNames.Add(ColumnNameReader["name"].ToString());
  14.                     ColumnNameReader.Close();
  15.  
  16.                     List<SearchField> searchFields = Parameters.SearchFields.FindAll(x => x.TableName.Equals(fieldCollection.Name));
  17.                     String SearchQuery = String.Empty;
  18.                     foreach (SearchField sF in searchFields)
  19.                         if (SearchQuery == String.Empty)
  20.                             SearchQuery = "CONVERT(varchar," + sF.FieldName + ")='" + fieldCollection.Fields.Find(x => x.Name.Equals(sF.FieldName)).Value + "'";
  21.                         else
  22.                             SearchQuery += " AND " + "CONVERT(varchar," + sF.FieldName + ")='" + fieldCollection.Fields.Find(x => x.Name.Equals(sF.FieldName)).Value + "'";
  23.  
  24.                     SqlCommand GetSearchedRows = new SqlCommand($"SELECT * FROM {fieldCollection.Name} WHERE {SearchQuery}", DatabaseConnection);
  25.                     SqlDataReader SearchedRows = GetSearchedRows.ExecuteReader();
  26.  
  27.                     if (SearchedRows.HasRows)
  28.                     {
  29.                         List<Field> updateFields = new List<Field>();
  30.                         while (SearchedRows.Read())
  31.                         {
  32.                             foreach (Field field in fieldCollection.Fields)
  33.                             {
  34.                                 try
  35.                                 {
  36.                                     if (field.Value.ToString() != SearchedRows[field.Name].ToString())
  37.                                         updateFields.Add(field);
  38.                                 }
  39.                                 catch { }
  40.                             }
  41.                         }
  42.                         SearchedRows.Close();
  43.  
  44.                         foreach (Field updateField in updateFields)
  45.                         {
  46.                             SqlCommand UpdateField = new SqlCommand($"UPDATE {fieldCollection.Name} SET {updateField.Name}='{CheckValue(updateField.Value)}' WHERE {SearchQuery}", DatabaseConnection);
  47.                             UpdateField.ExecuteNonQuery();
  48.                         }
  49.                     }
  50.                     else
  51.                     {
  52.                         SearchedRows.Close();
  53.                         String FieldNameList = String.Empty;
  54.                         String ValueList = String.Empty;
  55.  
  56.                         foreach (Field field in fieldCollection.Fields)
  57.                         {
  58.                             if (FieldNameList == String.Empty && ValueList == String.Empty)
  59.                             {
  60.                                 FieldNameList = $"[{field.Name}]";
  61.                                 ValueList = $"'{CheckValue(field.Value)}'";
  62.                             }
  63.                             else
  64.                             {
  65.                                 FieldNameList += $",[{field.Name}]";
  66.                                 ValueList += $",'{CheckValue(field.Value)}'";
  67.                             }
  68.                         }
  69.  
  70.                         SqlCommand AddNewRow = new SqlCommand($"INSERT INTO {fieldCollection.Name} ({FieldNameList}) VALUES ({ValueList})", DatabaseConnection);
  71.                         AddNewRow.BeginExecuteNonQuery();
  72.                     }
  73.  
  74.                     if (!SearchedRows.IsClosed)
  75.                         SearchedRows.Close();
  76.                    
  77.                 }
  78.                 DatabaseConnection.Close();
  79.             }
  80.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement