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
- CodeSmith 根据表生产SQL存储insert/updata过程 和 C#调用存储过程代码
- 存储过程和c#调用
- C#中调用SQL存储过程实现登录认证代码
- sql生成(c#调用存储过程返回数据表)代码的存储过程
- sql 存储过程实例----Insert
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C# 调用存储过程
- c# 调用存储过程
- C#调用存储过程
- c# 调用 存储过程
- C# 调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- 基于RF的web自动化测试
- java集合操作-去重
- 2017蓝桥杯模拟赛 Problem D: 字符串比较(9分)
- libcurl获取网页
- thinkPHP5下扩展encryptedData解密算法文件的注意事项
- CodeSmith 根据表生产SQL存储insert/updata过程 和 C#调用存储过程代码
- 本地文件同步在远程服务器上使用
- centos启用ftp功能
- C/C++中的那些不同:结构体和联合体
- C/C++函数实现接口
- 2017蓝桥杯模拟赛 Problem E: 还款计算(13分)
- Java注解
- Swing框架的继承关系
- cffi: 连接python与C的桥梁