コード例 #1
0
        public bool EditCategory(List <ArticleCategory> categoryModelList)
        {
            StringBuilder strSql = new StringBuilder();
            Dictionary <string, object> dicParams = new Dictionary <string, object>();

            for (int i = 0; i < categoryModelList.Count; i++)
            {
                var data = categoryModelList[i];
                //判断ID是否为空(为空则Add 反之则Update)
                if (!string.IsNullOrEmpty(data.id.ToString()) && data.id > 0)
                {
                    string sqlSet   = string.Format(" CategoryName = @CategoryName_{0},Sort = @Sort_{0},Color = @Color_{0} ", i);
                    string sqlWhere = string.Format(" id = @id_{0} ", i);
                    strSql.AppendFormat(" UPDATE [Marketing].[dbo].[tbl_NewCategoryList] WITH(rowlock) SET {0} WHERE {1} ", sqlSet, sqlWhere);

                    dicParams.Add("@CategoryName_" + i, data.CategoryName);
                    dicParams.Add("@Sort_" + i, data.Sort);
                    dicParams.Add("@id_" + i, data.id);
                    dicParams.Add("@Color_" + i, data.Color);
                }
                else
                {
                    string sqlSet   = string.Format("CategoryName,Sort,Color");
                    string sqlWhere = string.Format("@CategoryName_{0},@Sort_{0},@Color_{0} ", i);
                    strSql.AppendFormat(" INSERT into [Marketing].[dbo].[tbl_NewCategoryList]({0}) VALUES({1}) ", sqlSet, sqlWhere);

                    dicParams.Add("@CategoryName_" + i, data.CategoryName);
                    dicParams.Add("@Sort_" + i, data.Sort);
                    dicParams.Add("@Color_" + i, data.Color);
                }
            }

            SqlParameter[] sqlParams = new SqlParameter[dicParams.Count];//参数值
            //修改
            for (int i = 0; i < dicParams.Count; i++)
            {
                var dicKey   = dicParams.ElementAt(i).Key;
                var dicValue = dicParams.ElementAt(i).Value;
                sqlParams[i] = new SqlParameter(dicKey, dicValue);
            }
            Func <SqlConnection, bool> action = (connection) => DalArticle.EditCategory(connection, strSql.ToString(), sqlParams);

            return(dbManager.Execute(action));
        }