根据DTO结构,生成 insert Update SQL 语句

   private string GetInsertSql<T>(T dto, string tableOwnerSchema)
        {
            string sqlTemplate = @"INSERT INTO [{0}].[{1}] ({2}) values ({3});";

            string columnName = string.Empty;
            string columnVal = string.Empty;

            var propList = typeof(T).GetProperties();
            foreach (PropertyInfo prop in propList)
            {
                if (prop.Name != "columnNameA" && prop.Name != "columnNameB")
                {
                    columnName += "[" + prop.Name + "],";
                    columnVal += "@" + prop.Name + ",";
                }
            }
            columnVal.Remove(columnVal.Length - 1, 1);//del ,
            return string.Format(sqlTemplate, tableOwnerSchema, typeof(T).Name, columnName.Substring(0, columnName.Length - 1), columnVal.Substring(0, columnVal.Length - 1));

        }


        private string GetUpdateSql<T>(T dto, string tableOwnerSchema)
        {
            string sqlTemplate = @"Update [{0}].[{1}] Set {2} WHere Id = @Id;";

            string strsql = string.Empty;
            var propList = typeof(T).GetProperties();
            foreach (PropertyInfo prop in propList)
            {
                if (prop.Name != "columnNameA" && prop.Name != "columnNameB")
                {
                    strsql += "[" + prop.Name + "] = @" + prop.Name + ",";
                }
            }
            return string.Format(sqlTemplate, tableOwnerSchema, typeof(T).Name, strsql.Substring(0, strsql.Length - 1));
        }
阅读更多

没有更多推荐了,返回首页