void SetCommandParameters() { int entityFieldsCount = Entity.Resource.All.Count; TableAttributeNames = new string[entityFieldsCount]; ParameterNames = new Dictionary <EntityField, string>(entityFieldsCount); Parameters = new Dictionary <EntityField, MySqlParameter>(); for (int i = 0; i < entityFieldsCount; i++) { string parameterName = string.Empty; EntityField field = Entity.Resource.All[i]; if (field.ManyToOne == null) { string name = field.Names[Entity]; TableAttributeNames[i] = name; parameterName = "@" + name; ParameterNames.Add(field, parameterName); } else { Entity foreignEntity = field.ManyToOne.Entity; string name = field.Names[foreignEntity]; TableAttributeNames[i] = name; parameterName = "@" + name; ParameterNames.Add(field, parameterName); } MySqlDbType type = MySqlTypeConverter.ConvertToMySqlTypeAsSqlDbType(Entity.Resource.All[i]); Parameters.Add(field, new MySqlParameter(parameterName, type)); } FirstRowIndexParameter = new MySqlParameter("@firstRowIndex", MySqlDbType.Int32); RowNumberParameter = new MySqlParameter("@rowNumber", MySqlDbType.Int32); }
void SetInsertCommand() { List <string> parameterNames = new List <string>(); StringBuilder insertCommand = new StringBuilder(MySqlConnection.StringBuilderCapacity) .Append("INSERT INTO ") .AppendLine(Entity.Table.Name) .Append("("); foreach (string attributeName in TableAttributeNames) { insertCommand .Append(attributeName) .Append(","); } insertCommand = CutLastComma(insertCommand); insertCommand .AppendLine(")") .AppendLine("VALUES ("); foreach (string attributeName in TableAttributeNames) { string parameter = "@" + attributeName; parameterNames.Add(parameter); insertCommand .Append(parameter) .Append(","); } insertCommand = CutLastComma(insertCommand); insertCommand .Append(")"); Console.WriteLine(insertCommand); InsertCommand = new SqlCommand(insertCommand.ToString(), MySqlConnection.Connection); for (int i = 0; i < TableAttributeNames.Count; i++) { InsertCommand.Parameters.Add(parameterNames[i], MySqlTypeConverter.ConvertToMySqlTypeAsSqlDbType(Entity.Resource.All[i])); } InsertCommand.CommandType = CommandType.Text; }