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; }
/// <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); }