生成C#执行指定存储过程的参数
CodeSimth
代码如下
<%--
Name:
Author:
Description:
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False" Description="Template description here." %>
<%@ Property Name="PROC_NAME" Type="System.String" Category="Context" Description="????????" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
SqlParameter[] parameters = {
<%
System.Text.StringBuilder builder = new System.Text.StringBuilder();
DataSet ds = new DataSet();
ds = GetDbParameter();
for(int i =0; i < ds.Tables[0].Rows.Count; i++)
{
%>
new SqlParameter("<%=ds.Tables[0].Rows[i]["PARAMETER_NAME"].ToString()%>", SqlDbType.<%=ds.Tables[0].Rows[i]["DATA_TYPE"].ToString()%>)<% if ((i+1)==ds.Tables[0].Rows.Count){%>
};<%
}
else
{
%>,
<%
}
%>
<%
}
%>
<% for(int j=0; j < ds.Tables[0].Rows.Count; j++)
{
%>
<% if( ds.Tables[0].Rows[j]["PARAMETER_MODE"].ToString().Trim()=="IN"){ %>
parameters[<% %><%=j%><% %>].Value=model.<%=SubStr(ds.Tables[0].Rows[j]["PARAMETER_NAME"].ToString().Trim()) %>;
<% } else{%>
parameters[<% %><%=j%><% %>].Direction=ParameterDirection.Output;
<%} %>
<%
}
%>
<script runat="template">
#region ??SQL??????
public DataSet GetDbParameter()
{
SqlConnection con =new SqlConnection("Database=ksm000;Server=.;user id =sa;password =sa");
SqlCommand cmd =new SqlCommand("select * from information_schema.parameters where specific_name ='s_customer_ADD'",con);
SqlDataAdapter sda =new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds =new DataSet();
sda.Fill(ds);
return ds;
}
#endregion
#region ????
public string SubStr(string str)
{
return str.Substring(1,str.Length-1);
}
#endregion
</script>
Name:
Author:
Description:
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False" Description="Template description here." %>
<%@ Property Name="PROC_NAME" Type="System.String" Category="Context" Description="????????" %>
<%@ Assembly Name="System.Data" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
SqlParameter[] parameters = {
<%
System.Text.StringBuilder builder = new System.Text.StringBuilder();
DataSet ds = new DataSet();
ds = GetDbParameter();
for(int i =0; i < ds.Tables[0].Rows.Count; i++)
{
%>
new SqlParameter("<%=ds.Tables[0].Rows[i]["PARAMETER_NAME"].ToString()%>", SqlDbType.<%=ds.Tables[0].Rows[i]["DATA_TYPE"].ToString()%>)<% if ((i+1)==ds.Tables[0].Rows.Count){%>
};<%
}
else
{
%>,
<%
}
%>
<%
}
%>
<% for(int j=0; j < ds.Tables[0].Rows.Count; j++)
{
%>
<% if( ds.Tables[0].Rows[j]["PARAMETER_MODE"].ToString().Trim()=="IN"){ %>
parameters[<% %><%=j%><% %>].Value=model.<%=SubStr(ds.Tables[0].Rows[j]["PARAMETER_NAME"].ToString().Trim()) %>;
<% } else{%>
parameters[<% %><%=j%><% %>].Direction=ParameterDirection.Output;
<%} %>
<%
}
%>
<script runat="template">
#region ??SQL??????
public DataSet GetDbParameter()
{
SqlConnection con =new SqlConnection("Database=ksm000;Server=.;user id =sa;password =sa");
SqlCommand cmd =new SqlCommand("select * from information_schema.parameters where specific_name ='s_customer_ADD'",con);
SqlDataAdapter sda =new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds =new DataSet();
sda.Fill(ds);
return ds;
}
#endregion
#region ????
public string SubStr(string str)
{
return str.Substring(1,str.Length-1);
}
#endregion
</script>
MyGeneration
代码如下:
<%#REFERENCE System.Data.dll%><%#NAMESPACE System.Data%><%#NAMESPACE System.Data.SqlClient%><%#REFERENCE System.Xml.dll%><%
public class GeneratedTemplate : DotNetScriptTemplate
{
public GeneratedTemplate(ZeusContext context) : base(context) {}
//---------------------------------------------------
// Render() is where you want to write your logic
//---------------------------------------------------
public override void Render()
{
output.write("\t\t");
output.write("SqlParameter[] parameters = {");
System.Text.StringBuilder builder = new System.Text.StringBuilder();
DataSet ds = new DataSet();
ds = GetDbParameter1();
output.write("\n");
for(int i =0; i < ds.Tables[0].Rows.Count; i++)
{
output.write("\t\t\t\t");
output.write("new SqlParameter(");
output.write("\"" + ds.Tables[0].Rows[i]["PARAMETER_NAME"].ToString() + "\""+", SqlDbType." + SubstrToUpper(ds.Tables[0].Rows[i]["DATA_TYPE"].ToString()));
output.write(")");
if ((i+1)==ds.Tables[0].Rows.Count)
{
output.write("\n");
output.write("\t\t};");
}
else
{
output.write(",");
output.writeln("");
}
}
output.writeln("\t\n");
for(int j=0; j < ds.Tables[0].Rows.Count; j++)
{
if(ds.Tables[0].Rows[j]["PARAMETER_MODE"].ToString().Trim()=="IN")
{
output.write("\t\t");
output.write("parameters[");
output.write(j.ToString());
output.write("].Value=model.");
output.write(SubStr(ds.Tables[0].Rows[j]["PARAMETER_NAME"].ToString().Trim()));
output.write(";");
output.writeln("");
}
else
{
output.write("\t\t");
output.write("parameters["+j.ToString());
output.write("].Direction=ParameterDirection.Output;");
output.writeln("");
}
}
}
public DataSet GetDbParameter1()
{
SqlConnection con =new SqlConnection("Database=ksm000;Server=.;user id =sa;password =sa");
SqlCommand cmd =new SqlCommand("select * from information_schema.parameters where specific_name ='s_customer_ADD'",con);
SqlDataAdapter sda =new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds =new DataSet();
sda.Fill(ds);
return ds;
}
private string SubstrToUpper(string str)
{
switch (str.ToLower())
{
case "int":
str = "Int";
break;
case "nchar":
str = "NChar";
break;
case "bit":
str = "Bit";
break;
case "nvarchar":
str = "NVarChar";
break;
case "datetime":
str = "DataTime";
break;
case "varchar":
str = "VarChar";
break;
case "smalldatetime":
str = "SmallDateTime";
break;
case "decimal":
str = "Decimal";
break;
case "float":
str = "Float";
break;
case "char":
str = "Char";
break;
case "text":
str = "Text";
break;
case "money":
str = "Money";
break;
default:
str = "没有找到数据类型";
break;
}
return str;
}
public string SubStr(string str)
{
return str.Substring(1,str.Length-1);
}
}
%>
public class GeneratedTemplate : DotNetScriptTemplate
{
public GeneratedTemplate(ZeusContext context) : base(context) {}
//---------------------------------------------------
// Render() is where you want to write your logic
//---------------------------------------------------
public override void Render()
{
output.write("\t\t");
output.write("SqlParameter[] parameters = {");
System.Text.StringBuilder builder = new System.Text.StringBuilder();
DataSet ds = new DataSet();
ds = GetDbParameter1();
output.write("\n");
for(int i =0; i < ds.Tables[0].Rows.Count; i++)
{
output.write("\t\t\t\t");
output.write("new SqlParameter(");
output.write("\"" + ds.Tables[0].Rows[i]["PARAMETER_NAME"].ToString() + "\""+", SqlDbType." + SubstrToUpper(ds.Tables[0].Rows[i]["DATA_TYPE"].ToString()));
output.write(")");
if ((i+1)==ds.Tables[0].Rows.Count)
{
output.write("\n");
output.write("\t\t};");
}
else
{
output.write(",");
output.writeln("");
}
}
output.writeln("\t\n");
for(int j=0; j < ds.Tables[0].Rows.Count; j++)
{
if(ds.Tables[0].Rows[j]["PARAMETER_MODE"].ToString().Trim()=="IN")
{
output.write("\t\t");
output.write("parameters[");
output.write(j.ToString());
output.write("].Value=model.");
output.write(SubStr(ds.Tables[0].Rows[j]["PARAMETER_NAME"].ToString().Trim()));
output.write(";");
output.writeln("");
}
else
{
output.write("\t\t");
output.write("parameters["+j.ToString());
output.write("].Direction=ParameterDirection.Output;");
output.writeln("");
}
}
}
public DataSet GetDbParameter1()
{
SqlConnection con =new SqlConnection("Database=ksm000;Server=.;user id =sa;password =sa");
SqlCommand cmd =new SqlCommand("select * from information_schema.parameters where specific_name ='s_customer_ADD'",con);
SqlDataAdapter sda =new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds =new DataSet();
sda.Fill(ds);
return ds;
}
private string SubstrToUpper(string str)
{
switch (str.ToLower())
{
case "int":
str = "Int";
break;
case "nchar":
str = "NChar";
break;
case "bit":
str = "Bit";
break;
case "nvarchar":
str = "NVarChar";
break;
case "datetime":
str = "DataTime";
break;
case "varchar":
str = "VarChar";
break;
case "smalldatetime":
str = "SmallDateTime";
break;
case "decimal":
str = "Decimal";
break;
case "float":
str = "Float";
break;
case "char":
str = "Char";
break;
case "text":
str = "Text";
break;
case "money":
str = "Money";
break;
default:
str = "没有找到数据类型";
break;
}
return str;
}
public string SubStr(string str)
{
return str.Substring(1,str.Length-1);
}
}
%>
C#生成代码
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("\t\t");
sb.Append("SqlParameter[] parameters = {");
System.Text.StringBuilder builder = new System.Text.StringBuilder();
DataSet ds = new DataSet();
ds = GetDbParameter1();
sb.Append("\n");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sb.Append("\t\t\t\t");
sb.Append("new SqlParameter(");
sb.Append("\"" + ds.Tables[0].Rows[i]["PARAMETER_NAME"].ToString() + "\"" + ", SqlDbType." + SubstrToUpper(ds.Tables[0].Rows[i]["DATA_TYPE"].ToString()));
sb.Append(")");
if ((i + 1) == ds.Tables[0].Rows.Count)
{
sb.Append("\n");
sb.Append("\t\t};");
}
else
{
sb.Append(",");
sb.Append("\n");
}
}
sb.Append("\t\n");
for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
{
if (ds.Tables[0].Rows[j]["PARAMETER_MODE"].ToString().Trim() == "IN")
{
sb.Append("\t\t");
sb.Append("parameters[");
sb.Append(j.ToString());
sb.Append("].Value=model.");
sb.Append(SubStr(ds.Tables[0].Rows[j]["PARAMETER_NAME"].ToString().Trim()));
sb.Append(";");
sb.Append("\n");
}
else
{
sb.Append("\t\t");
sb.Append("parameters[" + j.ToString());
sb.Append("].Direction=ParameterDirection.Output;");
sb.Append("\n");
}
}
//Response.Write(sb.ToString);
TextBox1.Text = sb.ToString();
}
public DataSet GetDbParameter1()
{
SqlConnection con = new SqlConnection("Database=ksm000;Server=.;user id =sa;password =sa");
SqlCommand cmd = new SqlCommand("select * from information_schema.parameters where specific_name ='s_customer_ADD'", con);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
private string SubstrToUpper(string str)
{
switch (str.ToLower())
{
case "int":
str = "Int";
break;
case "nchar":
str = "NChar";
break;
case "bit":
str = "Bit";
break;
case "nvarchar":
str = "NVarChar";
break;
case "datetime":
str = "DataTime";
break;
case "varchar":
str = "VarChar";
break;
case "smalldatetime":
str = "SmallDateTime";
break;
case "decimal":
str = "Decimal";
break;
case "float":
str = "Float";
break;
case "char":
str = "Char";
break;
case "text":
str = "Text";
break;
case "money":
str = "Money";
break;
default:
throw new Exception("没有找到匹配数据类型");
break;
}
return str;
}
public string SubStr(string str)
{
return str.Substring(1, str.Length - 1);
}
{
StringBuilder sb = new StringBuilder();
sb.Append("\t\t");
sb.Append("SqlParameter[] parameters = {");
System.Text.StringBuilder builder = new System.Text.StringBuilder();
DataSet ds = new DataSet();
ds = GetDbParameter1();
sb.Append("\n");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sb.Append("\t\t\t\t");
sb.Append("new SqlParameter(");
sb.Append("\"" + ds.Tables[0].Rows[i]["PARAMETER_NAME"].ToString() + "\"" + ", SqlDbType." + SubstrToUpper(ds.Tables[0].Rows[i]["DATA_TYPE"].ToString()));
sb.Append(")");
if ((i + 1) == ds.Tables[0].Rows.Count)
{
sb.Append("\n");
sb.Append("\t\t};");
}
else
{
sb.Append(",");
sb.Append("\n");
}
}
sb.Append("\t\n");
for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
{
if (ds.Tables[0].Rows[j]["PARAMETER_MODE"].ToString().Trim() == "IN")
{
sb.Append("\t\t");
sb.Append("parameters[");
sb.Append(j.ToString());
sb.Append("].Value=model.");
sb.Append(SubStr(ds.Tables[0].Rows[j]["PARAMETER_NAME"].ToString().Trim()));
sb.Append(";");
sb.Append("\n");
}
else
{
sb.Append("\t\t");
sb.Append("parameters[" + j.ToString());
sb.Append("].Direction=ParameterDirection.Output;");
sb.Append("\n");
}
}
//Response.Write(sb.ToString);
TextBox1.Text = sb.ToString();
}
public DataSet GetDbParameter1()
{
SqlConnection con = new SqlConnection("Database=ksm000;Server=.;user id =sa;password =sa");
SqlCommand cmd = new SqlCommand("select * from information_schema.parameters where specific_name ='s_customer_ADD'", con);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
sda.Fill(ds);
return ds;
}
private string SubstrToUpper(string str)
{
switch (str.ToLower())
{
case "int":
str = "Int";
break;
case "nchar":
str = "NChar";
break;
case "bit":
str = "Bit";
break;
case "nvarchar":
str = "NVarChar";
break;
case "datetime":
str = "DataTime";
break;
case "varchar":
str = "VarChar";
break;
case "smalldatetime":
str = "SmallDateTime";
break;
case "decimal":
str = "Decimal";
break;
case "float":
str = "Float";
break;
case "char":
str = "Char";
break;
case "text":
str = "Text";
break;
case "money":
str = "Money";
break;
default:
throw new Exception("没有找到匹配数据类型");
break;
}
return str;
}
public string SubStr(string str)
{
return str.Substring(1, str.Length - 1);
}