下面时代码,解析:只要了解<% %>的含义就可以了
<% C#代码部分 %> C#代码逻辑,不会插入到生产代码中
<%= C#代码部分%>
加个 = 表示获取逻辑结果,生产到生产代码中
如:
@<%= "123" %> 生成@后面插入“123”,结果:@123
没有<% %>的部分是直接生产的
如代码:
select * from <%=
this.SourceTable.Name
%>
生产的结果:
select * from 表名(实际情况生产不同)
---------------------------SQL插入数据------------------------------
USE <%= this.SQLName %>
GO
create 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 %>
GO
create 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 %>
<% } %>
)
as
begin
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
}
CodeSmith 根据表生产SQL存储insert/updata过程 和 C#调用存储过程代码
最新推荐文章于 2021-04-15 22:25:19 发布