Exemplo n.º 1
0
 public static ISqlExecAgency CreateSQLAgency(eSqlType type, string sql)
 {
     ISqlExecAgency sa = null;
     switch (type)
     {
         case eSqlType.INSERT:
             sa = new SQLAgency_Insert();
             break;
         case eSqlType.UPDATE:
             sa = new SQLAgency_Update();
             break;
         case eSqlType.DELETE:
             sa = new SQLAgency_Delete();
             break;
         case eSqlType.DROP:
             sa = new SQLAgency_Drop();
             break;
         case eSqlType.CREATE:
             sa = new SQLAgency_Create();
             break;
         case eSqlType.SELECT:
             sa = new SQLAgency_Select();
             break;
     }
     return sa;
 }
Exemplo n.º 2
0
        /// <summary>
        /// 根据表行数据构造插入或更新语句
        /// </summary>
        /// <param name="dr"></param>
        /// <param name="ExcludeFileds"></param>
        /// <param name="dicAttachFieldValue"></param>
        /// <param name="SqlType"></param>
        /// <returns></returns>
        public static string GenerateSqlByDataRow(DataRow dr, List <string> ExcludeFileds, Dictionary <string, string> dicAttachFieldValue, eSqlType SqlType)
        {
            string strSql = string.Empty;

            string strFields    = string.Empty;
            string strValues    = string.Empty;
            string strUpdateSql = string.Empty;

            if (dr != null && dr.Table.Columns != null && dr.Table.Columns.Count > 0)
            {
                strUpdateSql = GetSqlByDataRow(dr, ref strFields, ref strValues, ExcludeFileds);
            }

            if (!string.IsNullOrEmpty(strFields))
            {
                strFields = strFields.TrimStart(',');
            }
            if (!string.IsNullOrEmpty(strValues))
            {
                strValues = strValues.TrimStart(',');
            }
            if (!string.IsNullOrEmpty(strUpdateSql))
            {
                strUpdateSql = strUpdateSql.TrimStart(',');
            }

            if (dicAttachFieldValue != null && dicAttachFieldValue.Count > 0)
            {
                foreach (KeyValuePair <string, string> kv in dicAttachFieldValue)
                {
                    #region
                    if (!string.IsNullOrEmpty(strFields))
                    {
                        strFields += "," + kv.Key;
                    }
                    else
                    {
                        strFields = kv.Key;
                    }
                    #endregion
                    //------------------------------
                    #region
                    if (!string.IsNullOrEmpty(strValues))
                    {
                        strValues += "," + kv.Value.ToString();
                    }
                    else
                    {
                        strValues = kv.Value.ToString();
                    }
                    #endregion
                    //------------------------------
                    #region
                    if (!string.IsNullOrEmpty(strUpdateSql))
                    {
                        strUpdateSql += "," + kv.Key + "=" + kv.Value.ToString();
                    }
                    else
                    {
                        strUpdateSql = kv.Key + "=" + kv.Value.ToString();
                    }
                    #endregion
                    //------------------------------
                }
            }

            if (SqlType == eSqlType.insert)
            {
                strSql = " ( " + strFields + " ) values ( " + strValues + " ) ";
            }
            else
            {
                strSql = strUpdateSql;
            }

            return(strSql);
        }