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

◆ BuildInsertCommand()

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

Definition at line 700 of file DbCommandBuilder.cs.

701 {
702 DbCommand dbCommand = InitializeCommand(InsertCommand);
703 StringBuilder stringBuilder = new StringBuilder();
704 int num = 0;
705 string value = " (";
706 stringBuilder.Append("INSERT INTO ");
707 stringBuilder.Append(QuotedBaseTableName);
708 DbSchemaRow[] dbSchemaRows = _dbSchemaRows;
709 string[] array = new string[dbSchemaRows.Length];
710 for (int i = 0; i < dbSchemaRows.Length; i++)
711 {
712 DbSchemaRow dbSchemaRow = dbSchemaRows[i];
713 if (dbSchemaRow == null || dbSchemaRow.BaseColumnName.Length == 0 || !IncludeInInsertValues(dbSchemaRow))
714 {
715 continue;
716 }
717 object obj = null;
718 string text = _sourceColumnNames[i];
719 if (mappings != null && dataRow != null)
720 {
721 DataColumn dataColumn = GetDataColumn(text, mappings, dataRow);
722 if (dataColumn == null || (dbSchemaRow.IsReadOnly && dataColumn.ReadOnly))
723 {
724 continue;
725 }
726 obj = GetColumnValue(dataRow, dataColumn, DataRowVersion.Current);
727 if (!dbSchemaRow.AllowDBNull && (obj == null || Convert.IsDBNull(obj)))
728 {
729 continue;
730 }
731 }
732 stringBuilder.Append(value);
733 value = ", ";
734 stringBuilder.Append(QuotedColumn(dbSchemaRow.BaseColumnName));
735 array[num] = CreateParameterForValue(dbCommand, GetBaseParameterName(i), text, DataRowVersion.Current, num, obj, dbSchemaRow, StatementType.Insert, whereClause: false);
736 num++;
737 }
738 if (num == 0)
739 {
740 stringBuilder.Append(" DEFAULT VALUES");
741 }
742 else
743 {
744 stringBuilder.Append(')');
745 stringBuilder.Append(" VALUES ");
746 stringBuilder.Append('(');
747 stringBuilder.Append(array[0]);
748 for (int j = 1; j < num; j++)
749 {
750 stringBuilder.Append(", ");
751 stringBuilder.Append(array[j]);
752 }
753 stringBuilder.Append(')');
754 }
755 dbCommand.CommandText = stringBuilder.ToString();
756 RemoveExtraParameters(dbCommand, num);
757 InsertCommand = dbCommand;
758 return dbCommand;
759 }
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)
bool IncludeInInsertValues(DbSchemaRow row)
override string ToString()
StringBuilder Append(char value, int repeatCount)

References System.Data.Common.DbCommandBuilder._dbSchemaRows, System.Data.Common.DbCommandBuilder._sourceColumnNames, System.Data.Common.DbSchemaRow.AllowDBNull, System.Text.StringBuilder.Append(), System.array, System.Data.Common.DbSchemaRow.BaseColumnName, 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.IncludeInInsertValues(), System.Data.Common.DbCommandBuilder.InitializeCommand(), System.Data.Common.DbCommandBuilder.InsertCommand, System.Convert.IsDBNull(), 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.text, System.Text.StringBuilder.ToString(), and System.value.

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