CodeSmith 根据表生产SQL存储insert/updata过程 和 C#调用存储过程代码

来源:互联网 发布:中国程序员地域分布图 编辑:程序博客网 时间:2024/05/19 19:41
下面时代码,解析:只要了解<% %>的含义就可以了<% C#代码部分 %>  C#代码逻辑,不会插入到生产代码中 <%= C#代码部分%> 加个 = 表示获取逻辑结果,生产到生产代码中如:@<%= "123" %> 生成@后面插入“123”,结果:@123没有<% %>的部分是直接生产的如代码:select * from <%= this.SourceTable.Name%>生产的结果:select * from 表名(实际情况生产不同)---------------------------SQL插入数据------------------------------USE <%= this.SQLName %>GOcreate proc [dbo].[insert<%=this.SourceTable.Name%>](        <% for (int i = 1; i< this.SourceTable.Columns.Count ;i++){        ColumnSchema column = this.SourceTable.Columns[i];%>        @<%=StringUtil.ToCamelCase(column.Name)+" "            +column.NativeType %><%= column.NativeType.Contains("char")? "("+column.Size.ToString()+")":""%><%= (i != this.SourceTable.Columns.Count -1)? ",":""%>   --<%= column.Description %>        <% } %> ) as begin    insert into [dbo].[<%=this.SourceTable.Name%>](    <% for (int i = 1; i< this.SourceTable.Columns.Count ;i++){        ColumnSchema column = this.SourceTable.Columns[i];%>        <%=StringUtil.ToCamelCase(column.Name)%><% if(i != this.SourceTable.Columns.Count -1) {%>,<%}%>   --<%= column.Description %>        <% } %>    ) values (    <% for (int i = 1; i< this.SourceTable.Columns.Count ;i++){        ColumnSchema column = this.SourceTable.Columns[i];%>        @<%= StringUtil.ToCamelCase(column.Name) %><% if(i != this.SourceTable.Columns.Count -1) {%>,<%}%>   --<%= column.Description %>        <% } %>        )        if @@ROWCOUNT > 0        select * from [<%=this.SourceTable.Name%>] where id = @@IDENTITY end  ---------------------------SQL更新数据------------------------------  USE <%= this.SQLName %>GOcreate proc [dbo].[update<%=this.SourceTable.Name%>](        <% for (int i = 0; i< this.SourceTable.Columns.Count ;i++){        ColumnSchema column = this.SourceTable.Columns[i];%>        @<%=StringUtil.ToCamelCase(column.Name)+" "            +column.NativeType %><%= column.NativeType.Contains("char")? "("+column.Size.ToString()+")":""%><%= (i != this.SourceTable.Columns.Count -1)? ",":""%>   --<%= column.Description %>        <% } %> )asbegin    update [dbo].[<%=this.SourceTable.Name%>] set     <% for (int i = 1; i< this.SourceTable.Columns.Count ;i++){        ColumnSchema column = this.SourceTable.Columns[i];%>        <%=StringUtil.ToCamelCase(column.Name)%> = @<%= StringUtil.ToCamelCase(column.Name) %><%= (i != this.SourceTable.Columns.Count -1)? ",":""%>   --<%= column.Description %>    <% } %>    if @@ROWCOUNT > 0    select * from this.SourceTable.Name where id = @<%= this.SourceTable.Columns[0].Name %>end  //--------C# 调用存储过程代码------//插入 <%{string str0 = "* <summary>\n* 新增"+this.SourceTable.Name+"存储过程  "+DateTime.Now.ToLocalTime()+"  "+this.opuser+" \n *</summary>\n*<param name=\"model\">class "        +this.SourceTable.Name+"</param>\n*<returns></returns>";        string str1 = @"        public DataSet insert"+this.SourceTable.Name+@"("+this.SourceTable.Name+@" model)        {            #region 存储过程            DataSet dataSet = new DataSet();            SqlDataAdapter sqlDA = new SqlDataAdapter();            connect            sqlDA.SelectCommand = command;            sqlDA.Fill(dataSet, "+ this.SourceTable.Name + @");            command.ExecuteNonQuery();            return dataSet;            #endregion        }        ";        String json = "SqlCommand command = new SqlCommand(\"insert"+this.SourceTable.Name + "\", connection.getSqlConnection());\n command.CommandType = CommandType.StoredProcedure; ";           for (int i = 1; i< this.SourceTable.Columns.Count ;i++){            ColumnSchema column = this.SourceTable.Columns[i];            if(!column.NativeType.Contains("datetime")) {                    json += "\n command.Parameters.AddWithValue(\"@" + column.Name + "\", model." + column.Name.Substring(0, 1).ToUpper() + column.Name.Substring(1) + ");";                }            }%>        <%= str0.Replace("*","///")+str1.Replace("connect",json) %><%} %>//更新        /// <summary>        /// 更新<%= this.SourceTable.Name %>存储过程  2017-03-27 17:28:21 linganyong        /// </summary>        /// <param name="model">class <%= this.SourceTable.Name %></param>        /// <returns></returns>        public DataSet update<%= this.SourceTable.Name %>(<%= this.SourceTable.Name %> model)        {            #region 存储过程            DataSet dataSet = new DataSet();            SqlDataAdapter sqlDA = new SqlDataAdapter();            SqlCommand command = new SqlCommand("update<%= this.SourceTable.Name %>", connection.getSqlConnection());            command.CommandType = CommandType.StoredProcedure;            sqlDA.SelectCommand = command;            <% for (int i = 0; i< this.SourceTable.Columns.Count ;i++){            ColumnSchema column = this.SourceTable.Columns[i];%>            command.Parameters.AddWithValue("@<%= column.Name%>", model.<%= column.Name.Substring(0, 1).ToUpper() + column.Name.Substring(1)%>);            <%}%>            sqlDA.Fill(dataSet, "[ProductInformation]");            command.ExecuteNonQuery();            return dataSet;            #endregion        }
0 0
原创粉丝点击