예제 #1
0
        /// <summary>
        /// 创建插入SQL
        /// </summary>
        /// <param name="paramz"></param>
        /// <param name="TableName"></param>
        /// <param name="FieldValues"></param>
        /// <returns></returns>
        public virtual string CreateInsertSQL(out System.Data.IDataParameter[] paramz, string TableName, Dictionary <string, object> FieldValues)
        {
            paramz = null;
            if (String.IsNullOrEmpty(TableName))
            {
                throw new ArgumentNullException("TableName is null");
            }
            if (FieldValues == null || FieldValues.Count == 0)
            {
                throw new ArgumentException("FieldValues is empty");
            }
            StringBuilder StrFileds = new StringBuilder();
            StringBuilder StrValues = new StringBuilder();

            IDataParameters paras = CreateDataParameters();
            int             index = 0;

            foreach (String key in FieldValues.Keys)
            {
                StrFileds.Append(m_Adapter.AdaptColumnName(key) + ",");
                String pName = paras.AdaptParameterName(key) + index;
                paras.AddParameterValue(pName, FieldValues[key]);
                StrValues.Append(pName + ",");
                index++;
            }
            paramz = paras.Parameters;
            StrFileds.Remove(StrFileds.Length - 1, 1);
            StrValues.Remove(StrValues.Length - 1, 1);
            String SQL = String.Format(CommonSQL.SQL_INSERT, TableName, StrFileds, StrValues);

            return(SQL);
        }