예제 #1
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="entity"></param>
 /// <returns></returns>
 public int Delete <T>(T entity) where T : class
 {
     return(ExecuteBySql(DatabaseCommon.DeleteSql <T>(entity).ToString(), DatabaseCommon.GetParameter <T>(entity)));
 }
예제 #2
0
        /// <summary>
        /// 解析XML字符串格式
        /// </summary>
        /// <param name="Xml"></param>
        /// <param name="arrSql">返回SQL</param>
        /// <param name="arrParam">返回参数化</param>
        /// <param name="Action">操作动作</param>
        private void AnalysisXml(string Xml, out ArrayList arrSql, out ArrayList arrParam, out string Action)
        {
            Xml = GZipHelper.Uncompress(Xml);
            ArrayList _arrSql   = new ArrayList();
            ArrayList _arrParam = new ArrayList();
            string    _Action   = "-1";

            try
            {
                XmlDocument xd = new XmlDocument();
                xd.LoadXml(Xml);
                foreach (XmlNode node in xd.ChildNodes)
                {
                    if (node.Name.Trim() == "Request")
                    {
                        foreach (XmlNode subnode in node.ChildNodes)
                        {
                            if (subnode.Name.Trim() == "data")
                            {
                                //根据接口代码获取对象
                                BaseInterfaceManage interfacemanage = Repository().FindEntity("Code", subnode.Attributes["code"].Value);
                                if (interfacemanage.InterfaceId != null)
                                {
                                    _Action = interfacemanage.Action;                                                 //动作类型
                                    string Constraint = interfacemanage.Constraints;                                  //约束达式
                                    foreach (XmlNode node_data in subnode.ChildNodes)
                                    {
                                        if (node_data.Name.Trim() == "no")
                                        {
                                            string pkName;
                                            string pkVal;
                                            switch (_Action)
                                            {
                                            case "Insert":    //新增
                                                Hashtable ht_add = this.XmlNodeToHashtable(node_data);
                                                _arrSql.Add(DatabaseCommon.InsertSql(Constraint.Trim(), ht_add));
                                                _arrParam.Add(DatabaseCommon.GetParameter(ht_add));
                                                break;

                                            case "Update":    //修改
                                                Hashtable ht_edit = this.XmlNodeToHashtable(node_data, out pkName, out pkVal);
                                                _arrSql.Add(new StringBuilder(Constraint.Trim()));
                                                _arrParam.Add(DatabaseCommon.GetParameter(ht_edit));
                                                break;

                                            case "Delete":    //删除
                                                Hashtable ht_Delete = this.XmlNodeToHashtable(node_data, out pkName, out pkVal);
                                                _arrSql.Add(DatabaseCommon.DeleteSql(Constraint.Trim(), pkName));
                                                _arrParam.Add(DbFactory.CreateDbParameter("@" + pkName, pkVal));
                                                break;

                                            case "Select":    //查询
                                                Hashtable ht_Param = this.XmlNodeToHashtable(node_data);
                                                _arrSql.Add(Constraint.Trim());
                                                _arrParam.Add(DatabaseCommon.GetParameter(ht_Param));
                                                break;

                                            case "Procedure":    //存储过程
                                                Hashtable ExecuteByProc = this.XmlNodeToHashtable(node_data);
                                                _arrSql.Add(Constraint.Trim());
                                                _arrParam.Add(ExecuteByProc);
                                                break;

                                            case "DataTableProc":    //存储过程-DataTableProc
                                                Hashtable DataTableProc = this.XmlNodeToHashtable(node_data);
                                                _arrSql.Add(Constraint.Trim());
                                                _arrParam.Add(DataTableProc);
                                                break;

                                            case "DataSetProc":    //存储过程-DataSetProc
                                                Hashtable DataSetProc = this.XmlNodeToHashtable(node_data);
                                                _arrSql.Add(Constraint.Trim());
                                                _arrParam.Add(DataSetProc);
                                                break;

                                            case "-1":    //异常信息
                                                break;

                                            default:
                                                break;
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    //log.Error(Xml.ToString() + "\r\n接口不存在\r\n");
                                }
                            }
                        }
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                //log.Error(Xml.ToString() + "\r\n" + e.Message + "\r\n");
            }
            finally
            {
                arrSql   = _arrSql;
                arrParam = _arrParam;
                Action   = _Action;
            }
        }
예제 #3
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public int Delete <T>() where T : class
 {
     return(ExecuteBySql(DatabaseCommon.DeleteSql(EntityAttributeHelper.GetEntityTable <T>()).ToString()));
 }