Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ BuildUpdateCommand()

DbCommand System.Data.Common.DbCommandBuilder.BuildUpdateCommand ( DataTableMapping mappings,
DataRow dataRow )
inlineprivate

Definition at line 761 of file DbCommandBuilder.cs.

762 {
763 DbCommand dbCommand = InitializeCommand(UpdateCommand);
764 StringBuilder stringBuilder = new StringBuilder();
765 string value = " SET ";
766 int num = 0;
767 stringBuilder.Append("UPDATE ");
768 stringBuilder.Append(QuotedBaseTableName);
769 DbSchemaRow[] dbSchemaRows = _dbSchemaRows;
770 for (int i = 0; i < dbSchemaRows.Length; i++)
771 {
772 DbSchemaRow dbSchemaRow = dbSchemaRows[i];
773 if (dbSchemaRow == null || dbSchemaRow.BaseColumnName.Length == 0 || !IncludeInUpdateSet(dbSchemaRow))
774 {
775 continue;
776 }
777 object obj = null;
778 string text = _sourceColumnNames[i];
779 if (mappings != null && dataRow != null)
780 {
781 DataColumn dataColumn = GetDataColumn(text, mappings, dataRow);
782 if (dataColumn == null || (dbSchemaRow.IsReadOnly && dataColumn.ReadOnly))
783 {
784 continue;
785 }
786 obj = GetColumnValue(dataRow, dataColumn, DataRowVersion.Current);
787 if (!SetAllValues)
788 {
789 object columnValue = GetColumnValue(dataRow, dataColumn, DataRowVersion.Original);
790 if (columnValue == obj || (columnValue != null && columnValue.Equals(obj)))
791 {
792 continue;
793 }
794 }
795 }
796 stringBuilder.Append(value);
797 value = ", ";
798 stringBuilder.Append(QuotedColumn(dbSchemaRow.BaseColumnName));
799 stringBuilder.Append(" = ");
800 stringBuilder.Append(CreateParameterForValue(dbCommand, GetBaseParameterName(i), text, DataRowVersion.Current, num, obj, dbSchemaRow, StatementType.Update, whereClause: false));
801 num++;
802 }
803 bool flag = num == 0;
804 num = BuildWhereClause(mappings, dataRow, stringBuilder, dbCommand, num, isUpdate: true);
805 dbCommand.CommandText = stringBuilder.ToString();
806 RemoveExtraParameters(dbCommand, num);
807 UpdateCommand = dbCommand;
808 if (!flag)
809 {
810 return dbCommand;
811 }
812 return null;
813 }
object GetColumnValue(DataRow row, string columnName, DataTableMapping mappings, DataRowVersion version)
static void RemoveExtraParameters(DbCommand command, int usedParameterCount)
DataColumn GetDataColumn(string columnName, DataTableMapping tablemapping, DataRow row)
string CreateParameterForValue(DbCommand command, string parameterName, string sourceColumn, DataRowVersion version, int parameterCount, object value, DbSchemaRow row, StatementType statementType, bool whereClause)
virtual DbCommand InitializeCommand(DbCommand? command)
int BuildWhereClause(DataTableMapping mappings, DataRow dataRow, StringBuilder builder, DbCommand command, int parameterCount, bool isUpdate)
override string ToString()
StringBuilder Append(char value, int repeatCount)

References System.Data.Common.DbCommandBuilder._dbSchemaRows, System.Data.Common.DbCommandBuilder._sourceColumnNames, System.Text.StringBuilder.Append(), System.Data.Common.DbSchemaRow.BaseColumnName, System.Data.Common.DbCommandBuilder.BuildWhereClause(), System.Data.Common.DbCommandBuilder.CreateParameterForValue(), System.Data.Common.DbCommandBuilder.GetBaseParameterName(), System.Data.Common.DbCommandBuilder.GetColumnValue(), System.Data.Common.DbCommandBuilder.GetDataColumn(), System.Text.RegularExpressions.i, System.Data.Common.DbCommandBuilder.IncludeInUpdateSet(), System.Data.Common.DbCommandBuilder.InitializeCommand(), System.Data.Common.DbSchemaRow.IsReadOnly, System.obj, System.Data.Common.DbCommandBuilder.QuotedBaseTableName, System.Data.Common.DbCommandBuilder.QuotedColumn(), System.Data.DataColumn.ReadOnly, System.Data.Common.DbCommandBuilder.RemoveExtraParameters(), System.Data.Common.DbCommandBuilder.SetAllValues, System.text, System.Text.StringBuilder.ToString(), System.Data.Common.DbCommandBuilder.UpdateCommand, and System.value.

Referenced by System.Data.Common.DbCommandBuilder.GetUpdateCommand(), and System.Data.Common.DbCommandBuilder.RowUpdatingHandlerBuilder().