Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void uploadFieldCollection(DatabaseUploadCollectionParameters Parameters)
- {
- using (SqlConnection DatabaseConnection = new SqlConnection($"Server={Parameters.Server};Database={Parameters.Database};User Id={Parameters.UserID};Password={Parameters.Password};MultipleActiveResultSets=True"))
- {
- DatabaseConnection.Open();
- foreach (FieldCollection fieldCollection in Parameters.FieldCollections)
- {
- //Gets Column Names From SQL Table
- List<String> ColumnNames = new List<String>();
- SqlCommand GetTableColumns = new SqlCommand($"SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('{fieldCollection.Name}')", DatabaseConnection);
- SqlDataReader ColumnNameReader = GetTableColumns.ExecuteReader();
- while (ColumnNameReader.Read())
- ColumnNames.Add(ColumnNameReader["name"].ToString());
- ColumnNameReader.Close();
- List<SearchField> searchFields = Parameters.SearchFields.FindAll(x => x.TableName.Equals(fieldCollection.Name));
- String SearchQuery = String.Empty;
- foreach (SearchField sF in searchFields)
- if (SearchQuery == String.Empty)
- SearchQuery = "CONVERT(varchar," + sF.FieldName + ")='" + fieldCollection.Fields.Find(x => x.Name.Equals(sF.FieldName)).Value + "'";
- else
- SearchQuery += " AND " + "CONVERT(varchar," + sF.FieldName + ")='" + fieldCollection.Fields.Find(x => x.Name.Equals(sF.FieldName)).Value + "'";
- SqlCommand GetSearchedRows = new SqlCommand($"SELECT * FROM {fieldCollection.Name} WHERE {SearchQuery}", DatabaseConnection);
- SqlDataReader SearchedRows = GetSearchedRows.ExecuteReader();
- if (SearchedRows.HasRows)
- {
- List<Field> updateFields = new List<Field>();
- while (SearchedRows.Read())
- {
- foreach (Field field in fieldCollection.Fields)
- {
- try
- {
- if (field.Value.ToString() != SearchedRows[field.Name].ToString())
- updateFields.Add(field);
- }
- catch { }
- }
- }
- SearchedRows.Close();
- foreach (Field updateField in updateFields)
- {
- SqlCommand UpdateField = new SqlCommand($"UPDATE {fieldCollection.Name} SET {updateField.Name}='{CheckValue(updateField.Value)}' WHERE {SearchQuery}", DatabaseConnection);
- UpdateField.ExecuteNonQuery();
- }
- }
- else
- {
- SearchedRows.Close();
- String FieldNameList = String.Empty;
- String ValueList = String.Empty;
- foreach (Field field in fieldCollection.Fields)
- {
- if (FieldNameList == String.Empty && ValueList == String.Empty)
- {
- FieldNameList = $"[{field.Name}]";
- ValueList = $"'{CheckValue(field.Value)}'";
- }
- else
- {
- FieldNameList += $",[{field.Name}]";
- ValueList += $",'{CheckValue(field.Value)}'";
- }
- }
- SqlCommand AddNewRow = new SqlCommand($"INSERT INTO {fieldCollection.Name} ({FieldNameList}) VALUES ({ValueList})", DatabaseConnection);
- AddNewRow.BeginExecuteNonQuery();
- }
- if (!SearchedRows.IsClosed)
- SearchedRows.Close();
- }
- DatabaseConnection.Close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement