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);
        }
예제 #2
0
        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;
        }