新建一个.net项目新建类库,添加EntityBuilder.aspx 文件,用于生成存储过程,实体类,数据层,业务层,生成字段,生成程序

顺序:

1.点visual studio 文件---新建--网站

2.在新弹出的框里选择已安装--模板--visual c# ,在右侧选择asp.net Web 窗体网站,web位置处选择文件系统和文件存储路径。

 

3.新建类库。点文件---新建---项目

4.在新窗口中左侧选择已安装---模板--Visual C#,在右侧窗体选择类库,填写类库名称、存放位置,解决方案选择添加到解决方案。

5.最后在解决方案里看见的就是这个的结构了。

6.修改web.config文件,添加连接数据库的地址,数据库用户名、密码,数据库名,注销掉会报错的地方。

<appSettings>
<add key="DBServer" value="."/> <!--设置数据库的服务器地址-->
<add key="DBUserName" value="sa"/><!--连接数据库的用户名-->
<add key="DBPassword" value="456789zwq"/><!--设置连接数据库的用户名密码-->
<add key="DBName" value="Test_TongBu"/><!--设置连接数据库服务器的数据库名-->
</appSettings>

6.为了封装的高性能,可扩展的最佳做法SqlClient在数据访问层建立一个SQLHelper类,用于管理连接数据库

  1 /// <summary>
  2     /// 在SqlHelper类是为了封装的高性能,可扩展的最佳做法SqlClient的常见用途。
  3     /// </summary>
  4     public static class SqlHelper
  5     {  
  6         //数据库连接字符串
  7         public static readonly string ConnectionString = "server=" + ConfigurationSettings.AppSettings["DBServer"].ToString() + ";uid=" + ConfigurationSettings.AppSettings["DBUserName"].ToString() + ";pwd=" + ConfigurationSettings.AppSettings["DBPassword"].ToString() + ";database=" + ConfigurationSettings.AppSettings["DBName"].ToString();
  8   
  9 
 10         // Hashtable来存储缓存参数
 11         private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
 12 
 13 
 14         /// <summary>
 15         /// 执行存储过程
 16         /// </summary>
 17         /// <param name="connectionString">数据库连接字符串</param>
 18         /// <param name="cmdType">命令类型</param>
 19         /// <param name="cmdText">存储过程名称</param>
 20         /// <param name="commandParameters">存储过程所有的参数</param>
 21         /// <returns></returns>
 22         public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
 23         {
 24             SqlCommand cmd = new SqlCommand();
 25             int val = 0;
 26             using (SqlConnection conn = new SqlConnection(connectionString))
 27             {
 28                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
 29                 val = cmd.ExecuteNonQuery();
 30                 cmd.Parameters.Clear();
 31                 conn.Dispose();
 32                 conn.Close();
 33             }
 34             return val;
 35         }
 36 
 37 
 38         /// <summary>
 39         /// 执行存储过程
 40         /// </summary>
 41         /// <param name="connection">SqlConnection对像</param>
 42         /// <param name="cmdType">命令类型</param>
 43         /// <param name="cmdText">存储过程名称</param>
 44         /// <param name="commandParameters">存储过程所有的参数</param>
 45         /// <returns></returns>
 46         public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
 47         {
 48             SqlCommand cmd = new SqlCommand();
 49             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
 50             int val = cmd.ExecuteNonQuery();
 51             cmd.Parameters.Clear();
 52             return val;
 53         }
 54 
 55 
 56         /// <summary>
 57         /// 返回DataSet数据集
 58         /// </summary>
 59         /// <param name="connectionString">数据库连接字符串</param>
 60         /// <param name="cmdType">命令类型</param>
 61         /// <param name="cmdText">存储过程名称</param>
 62         /// <param name="commandParameters">存储过程所有的参数</param>
 63         /// <returns></returns>
 64         public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
 65         {
 66             SqlCommand cmd = new SqlCommand();
 67             DataSet ds = new DataSet();
 68             using (SqlConnection conn = new SqlConnection(connectionString))
 69             {
 70                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
 71                 SqlDataAdapter adp = new SqlDataAdapter(cmd);
 72                 adp.Fill(ds);
 73                 cmd.Parameters.Clear();
 74                 conn.Dispose();
 75                 conn.Close();
 76             }
 77             return ds;
 78         }
 79 
 80 
 81         /// <summary>
 82         /// 返回DataSet数据集
 83         /// </summary>
 84         /// <param name="connection">SqlConnection对像</param>
 85         /// <param name="cmdType">命令类型</param>
 86         /// <param name="cmdText">存储过程名称</param>
 87         /// <param name="commandParameters">存储过程所有的参数</param>
 88         /// <returns></returns>
 89         public static DataSet ExecuteDataSet(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
 90         {
 91             SqlCommand cmd = new SqlCommand();
 92 
 93             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
 94             SqlDataAdapter adp = new SqlDataAdapter(cmd);
 95             DataSet ds = new DataSet();
 96             adp.Fill(ds);
 97             cmd.Parameters.Clear();
 98             return ds;
 99         }
100 
101 
102         /// <summary>
103         /// 
104         /// </summary>
105         /// <param name="trans">SqlTransaction事务对像</param>
106         /// <param name="cmdType">命令类型</param>
107         /// <param name="cmdText">存储过程名称</param>
108         /// <param name="commandParameters">存储过程所有的参数</param>
109         /// <returns></returns>
110         public static DataSet ExecuteDataSet(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
111         {
112             SqlCommand cmd = new SqlCommand();
113             PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
114             DataSet ds = new DataSet();
115             SqlDataAdapter adp = new SqlDataAdapter();
116             adp.Fill(ds);
117             cmd.Parameters.Clear();
118             return ds;
119         }
120 
121 
122         /// <summary>
123         /// 返回DataSet数据集
124         /// </summary>
125         /// <param name="connectionString">数据库连接字符串</param>
126         /// <param name="cmdType">命令类型</param>
127         /// <param name="cmdText">存储过程名称</param>
128         /// <param name="curPage">当前页</param>
129         /// <param name="pageSize">页的大小</param>
130         /// <param name="commandParameters">存储过程所有的参数</param>
131         /// <returns></returns>
132         public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, int curPage, int pageSize, params SqlParameter[] commandParameters)
133         {
134             SqlCommand cmd = new SqlCommand();
135             DataSet ds = new DataSet();
136             using (SqlConnection conn = new SqlConnection(connectionString))
137             {
138                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
139                 SqlDataAdapter adp = new SqlDataAdapter(cmd);
140                 if (curPage < 1)
141                     curPage = 1;
142                 adp.Fill(ds, (curPage - 1) * pageSize, pageSize, "table0");
143                 cmd.Parameters.Clear();
144                 conn.Dispose();
145                 conn.Close();
146             }
147             return ds;
148         }
149 
150 
151         /// <summary>
152         /// 返回DataSet数据集
153         /// </summary>
154         /// <param name="connection">SqlConnection对像</param>
155         /// <param name="cmdType">命令类型</param>
156         /// <param name="cmdText">存储过程名称</param>
157         /// <param name="curPage">当前页</param>
158         /// <param name="pageSize">页的大小</param>
159         /// <param name="commandParameters">存储过程所有的参数</param>
160         /// <returns></returns>
161         public static DataSet ExecuteDataSet(SqlConnection connection, CommandType cmdType, string cmdText, int curPage, int pageSize, params SqlParameter[] commandParameters)
162         {
163             SqlCommand cmd = new SqlCommand();
164 
165             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
166             SqlDataAdapter adp = new SqlDataAdapter(cmd);
167             DataSet ds = new DataSet();
168             if (curPage < 1)
169                 curPage = 1;
170             adp.Fill(ds, (curPage - 1) * pageSize, pageSize, "table0");
171             cmd.Parameters.Clear();
172             return ds;
173         }
174 
175 
176         /// <summary>
177         /// 
178         /// </summary>
179         /// <param name="trans">SqlTransaction事务对像</param>
180         /// <param name="cmdType">命令类型</param>
181         /// <param name="cmdText">存储过程名称</param>
182         /// <param name="curPage">当前页</param>
183         /// <param name="pageSize">页的大小</param>
184         /// <param name="commandParameters">存储过程所有的参数</param>
185         /// <returns></returns>
186         public static DataSet ExecuteDataSet(SqlTransaction trans, CommandType cmdType, string cmdText, int curPage, int pageSize, params SqlParameter[] commandParameters)
187         {
188             SqlCommand cmd = new SqlCommand();
189             PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
190             DataSet ds = new DataSet();
191             SqlDataAdapter adp = new SqlDataAdapter();
192             if (curPage < 1)
193                 curPage = 1;
194             adp.Fill(ds, (curPage - 1) * pageSize, pageSize, "table0");
195             cmd.Parameters.Clear();
196             return ds;
197         }
198 
199 
200         /// <summary>
201         /// 执行一句(不返回结果集)使用现有的SQL事务
202         /// </summary>
203         /// <param name="trans">SqlTransaction事务对像</param>
204         /// <param name="cmdType">命令类型</param>
205         /// <param name="cmdText">存储过程名称</param>
206         /// <param name="commandParameters">存储过程所有的参数</param>
207         /// <returns></returns>
208         public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
209         {
210             SqlCommand cmd = new SqlCommand();
211             PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
212             int val = cmd.ExecuteNonQuery();
213             cmd.Parameters.Clear();
214             return val;
215         }
216 
217 
218         /// <summary>
219         /// 获取详细信息
220         /// </summary>
221         /// <param name="connectionString">数据库连接字符串</param>
222         /// <param name="cmdType">命令类型</param>
223         /// <param name="cmdText">存储过程名称</param>
224         /// <param name="commandParameters">存储过程所有的参数</param>
225         /// <returns>SqlDataReader</returns>
226         public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
227         {
228             SqlCommand cmd = new SqlCommand();
229             SqlConnection conn = new SqlConnection(connectionString);
230 
231             // we use a try/catch here because if the method throws an exception we want to 
232             // close the connection throw code, because no datareader will exist, hence the 
233             // commandBehaviour.CloseConnection will not work
234             try
235             {
236                 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
237                 SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
238                 cmd.Parameters.Clear();
239                 return rdr;
240             }
241             catch
242             {
243                 conn.Dispose();
244                 conn.Close();
245                 throw;
246             }
247         }
248 
249 
250         /// <summary>
251         /// 
252         /// </summary>
253         /// <param name="connectionString">数据库连接字符串</param>
254         /// <param name="cmdType">命令类型</param>
255         /// <param name="cmdText">存储过程名称</param>
256         /// <param name="commandParameters">存储过程所有的参数</param>
257         /// <returns>返回第一行、第一列</returns>
258         public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
259         {
260             SqlCommand cmd = new SqlCommand();
261             object val = new object();
262             using (SqlConnection connection = new SqlConnection(connectionString))
263             {
264                 PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
265                 val = cmd.ExecuteScalar();
266                 cmd.Parameters.Clear();
267                 connection.Dispose();
268                 connection.Close();
269             }
270             return val;
271         }
272 
273 
274         /// <summary>
275         /// 
276         /// </summary>
277         /// <param name="connection">SqlConnection对像</param>
278         /// <param name="cmdType">命令类型</param>
279         /// <param name="cmdText">存储过程名称</param>
280         /// <param name="commandParameters">存储过程所有的参数</param>
281         /// <returns>返回第一行、第一列</returns>
282         public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
283         {
284             SqlCommand cmd = new SqlCommand();
285 
286             PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
287             object val = cmd.ExecuteScalar();
288             cmd.Parameters.Clear();
289             return val;
290         }
291 
292 
293         /// <summary>
294         /// 参数数组添加到缓存中
295         /// </summary>
296         /// <param name="cacheKey">关键参数缓存</param>
297         /// <param name="cmdParms">一个SqlParamters数组缓存</param>
298         public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
299         {
300             parmCache[cacheKey] = commandParameters;
301         }
302 
303 
304         /// <summary>
305         /// 检索缓存的参数
306         /// </summary>
307         /// <param name="cacheKey">主要用于查找参数</param>
308         /// <returns>缓存SqlParamters阵列</returns>
309         public static SqlParameter[] GetCachedParameters(string cacheKey)
310         {
311             SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
312 
313             if (cachedParms == null)
314                 return null;
315 
316             SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];
317 
318             for (int i = 0, j = cachedParms.Length; i < j; i++)
319                 clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();
320 
321             return clonedParms;
322         }
323 
324 
325         /// <summary>
326         /// 准备一个用于执行命令
327         /// </summary>
328         /// <param name="cmd">SqlCommand 对象</param>
329         /// <param name="conn">SqlConnection 对象</param>
330         /// <param name="trans">SqlTransaction 对象</param>
331         /// <param name="cmdType">命令类型</param>
332         /// <param name="cmdText">存储过程名称</param>
333         /// <param name="cmdParms">存储过程所有的参数</param>
334         private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
335         {
336             if (conn.State != ConnectionState.Open)
337                 conn.Open();
338 
339             cmd.Connection = conn;
340             cmd.CommandText = cmdText;
341 
342             if (trans != null)
343                 cmd.Transaction = trans;
344 
345             cmd.CommandType = cmdType;
346 
347             //后修改的
348             if (cmdParms != null)
349             {
350                 cmd.Parameters.AddRange(cmdParms);
351             }
352 
353             //之前的单个值相加
354             ////if (cmdParms != null)
355             ////{
356             ////    foreach (SqlParameter parm in cmdParms)
357             ////        cmd.Parameters.Add(parm);
358             ////}
359         }
360     }

 

 

6.在Webui层添加一个tools文件夹,添加EntityBuilder.aspx 文件,用于生成存储过程,实体类,数据层,业务层,生成字段,生成程序。

 

 EntityBuilder.aspx文件内容

<head runat="server">
<title>Notfind程式生成工具</title>
</head>
<body>
<form id="form1" runat="server">
<div>
数据表名:<asp:TextBox ID="DB_TableName" runat="server"></asp:TextBox>&nbsp; 模块名称:<asp:TextBox ID="Entity_Title" runat="server"></asp:TextBox><br /><asp:Button ID="Button1" runat="server" Text="生成存储过程" OnClick="Button1_Click" />
<asp:Button ID="DB_Submit" runat="server" Text="生成实体类" OnClick="DB_Submit_Click" />
<asp:Button ID="Entity_Data" runat="server" Text="生成数据层" OnClick="Entity_Data_Click" />
<asp:Button ID="Button2" runat="server" Text="生成业务层" OnClick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="生成字段" OnClick="Button21_Click" />
<asp:Button ID="Button4" runat="server" Text="生成程序" OnClick="DB_Submit5_Click" /><br />
[注]本程序仅应用于NotFind架构的系统上,如生成存储过程请确保您的第一个字段为SN.<br />
生成结果为程序自动生成,请在使用前人工检测,以免发生程式错误.
<br />
<br />
<br />
生成结果<br />
<asp:TextBox ID="Entity_Result" runat="server" Height="641px" TextMode="MultiLine"
Width="1133px"></asp:TextBox></div>
</form>
</body>

 

  EntityBuilder.aspx.cs文件内容

  1   protected void DB_Submit_Click(object sender, EventArgs e)
  2     {
  3         StringBuilder result = new StringBuilder();
  4         String TableName = this.DB_TableName.Text;
  5         DataTable TableList = MethodLibrary.ExecuteDIYSql("select top 0 * from " + TableName);
  6         String title = this.Entity_Title.Text + "Info";
  7         result.Append("public class " + title + "\n");
  8         result.Append("{\n");
  9         for (int k = 0; k < TableList.Columns.Count; k++)
 10         {
 11             result.Append("private " + TableList.Columns[k].DataType.ToString().Replace("System.", "") + " _" + TableList.Columns[k].ColumnName + " " + TableList.Columns[k].DataType.ToString().Replace("System.", "").Replace("Int32", "= 0").Replace("Decimal", "= 0").Replace("Boolean", "= false").Replace("String", "= \"\"").Replace("DateTime", "= DateTime.Now") + ";//\n");
 12         }
 13         result.Append("\npublic " + title + "()\n");
 14         result.Append("{\n");
 15         for (int k = 0; k < TableList.Columns.Count; k++)
 16         {
 17             result.Append("this._" + TableList.Columns[k].ColumnName + " = " + TableList.Columns[k].ColumnName + ";\n");
 18         }
 19         result.Append("}\n");
 20         for (int k = 0; k < TableList.Columns.Count; k++)
 21         {
 22             result.Append("/// <summary>\n");
 23             result.Append("/// \n");
 24             result.Append("/// </summary>\n");
 25             result.Append("public " + TableList.Columns[k].DataType.ToString().Replace("System.", "") + " " + TableList.Columns[k].ColumnName + "\n");
 26             result.Append("{\n");
 27             result.Append("get { return this._" + TableList.Columns[k].ColumnName + "; }\n");
 28             result.Append("set { this._" + TableList.Columns[k].ColumnName + " = value; }\n");
 29             result.Append("}\n");
 30         }
 31         result.Append("}\n");
 32 
 33         this.Entity_Result.Text = result.ToString();
 34 
 35     }
 36 
 37     protected void Button1_Click(object sender, EventArgs e)
 38     {
 39         StringBuilder result = new StringBuilder();
 40         String TableName = this.DB_TableName.Text;
 41         DataTable TableList = MethodLibrary.ExecuteDIYSql("select column_name,data_type,character_maximum_length from information_schema.columns where table_name = '" + TableName + "'");
 42 
 43         #region 添加
 44         result.Append("/*\n");
 45         result.Append("*Name: [" + TableName + "_Add]\n");
 46         result.Append("*Description: 添加\n");
 47         result.Append("*Author: C#\n");
 48         result.Append("*/\n");
 49         result.Append("IF EXISTS (SELECT NAME FROM sysobjects WHERE id = OBJECT_ID(N'[" + TableName + "_Add]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)\n");
 50         result.Append("DROP PROCEDURE [" + TableName + "_Add]\n");
 51         result.Append("GO\n");
 52         result.Append("CREATE procedure [" + TableName + "_Add]\n");
 53         for (int k = 1; k < TableList.Rows.Count; k++)
 54         {
 55             if (k + 1 == TableList.Rows.Count)
 56             {
 57                 if (TableList.Rows[k]["character_maximum_length"].ToString() == "")
 58                 {
 59                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + "\n");
 60                 }
 61                 else if (TableList.Rows[k]["character_maximum_length"].ToString() == "1073741823")
 62                 {
 63                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + "\n");
 64                 }
 65                 else
 66                 {
 67                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + "(" + TableList.Rows[k]["character_maximum_length"].ToString() + ")\n");
 68                 }
 69             }
 70             else
 71             {
 72                 if (TableList.Rows[k]["character_maximum_length"].ToString() == "")
 73                 {
 74                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + ",\n");
 75                 }
 76                 else if (TableList.Rows[k]["character_maximum_length"].ToString() == "1073741823")
 77                 {
 78                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + ",\n");
 79                 }
 80                 else
 81                 {
 82                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + "(" + TableList.Rows[k]["character_maximum_length"].ToString() + "),\n");
 83                 }
 84             }
 85         }
 86         result.Append("AS\n");
 87         result.Append("Insert into " + TableName + "\n");
 88         result.Append("(\n");
 89         for (int k = 1; k < TableList.Rows.Count; k++)
 90         {
 91             if (k + 1 == TableList.Rows.Count)
 92             {
 93                 result.Append(TableList.Rows[k]["column_name"].ToString() + "\n");
 94             }
 95             else
 96             {
 97                 result.Append(TableList.Rows[k]["Column_Name"].ToString() + ",\n");
 98             }
 99         }
100         result.Append(")\n");
101         result.Append("Values\n");
102         result.Append("(\n");
103         for (int k = 1; k < TableList.Rows.Count; k++)
104         {
105             if (k + 1 == TableList.Rows.Count)
106             {
107                 result.Append("@" + TableList.Rows[k]["Column_Name"].ToString() + "\n");
108             }
109             else
110             {
111                 result.Append("@" + TableList.Rows[k]["Column_Name"].ToString() + ",\n");
112             }
113         }
114         result.Append(")\n");
115         result.Append("\n");
116         result.Append("\n");
117         result.Append("\n");
118         result.Append("\n");
119         #endregion
120 
121         #region 删除
122         result.Append("/*\n");
123         result.Append("*Name: [" + TableName + "_Delete]\n");
124         result.Append("*Description: 删除\n");
125         result.Append("*Author: C#\n");
126         result.Append("*/\n");
127         result.Append("IF EXISTS (SELECT NAME FROM sysobjects WHERE id = OBJECT_ID(N'[" + TableName + "_Delete]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)\n");
128         result.Append("DROP PROCEDURE [" + TableName + "_Delete]\n");
129         result.Append("GO\n");
130         result.Append("CREATE procedure [" + TableName + "_Delete]\n");
131         result.Append("@" + TableList.Rows[0]["Column_Name"].ToString() + " " + TableList.Rows[0]["data_type"].ToString() + "\n");
132         result.Append("AS\n");
133         result.Append("Delete from " + TableName + " where " + TableList.Rows[0]["Column_Name"].ToString() + "=@" + TableList.Rows[0]["Column_Name"].ToString() + "\n");
134         result.Append("\n");
135         result.Append("\n");
136         result.Append("\n");
137         result.Append("\n");
138         #endregion
139 
140         #region 获取
141         result.Append("/*\n");
142         result.Append("*Name: [" + TableName + "_Get]\n");
143         result.Append("*Description: 获取\n");
144         result.Append("*Author: C#\n");
145         result.Append("*/\n");
146         result.Append("IF EXISTS (SELECT NAME FROM sysobjects WHERE id = OBJECT_ID(N'[" + TableName + "_Get]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)\n");
147         result.Append("DROP PROCEDURE [" + TableName + "_Get]\n");
148         result.Append("GO\n");
149         result.Append("CREATE procedure [" + TableName + "_Get]\n");
150         result.Append("@" + TableList.Rows[0]["Column_Name"].ToString() + " " + TableList.Rows[0]["data_type"].ToString() + "\n");
151         result.Append("AS\n");
152         result.Append("select top 1 * from " + TableName + " where " + TableList.Rows[0]["Column_Name"].ToString() + "=@" + TableList.Rows[0]["Column_Name"].ToString() + "\n");
153         result.Append("\n");
154         result.Append("\n");
155         result.Append("\n");
156         result.Append("\n");
157         #endregion
158 
159         #region 列表
160         result.Append("/*\n");
161         result.Append("*Name: [" + TableName + "_List]\n");
162         result.Append("*Description: 列表\n");
163         result.Append("*Author: C#\n");
164         result.Append("*/\n");
165         result.Append("IF EXISTS (SELECT NAME FROM sysobjects WHERE id = OBJECT_ID(N'[" + TableName + "_List]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)\n");
166         result.Append("DROP PROCEDURE [" + TableName + "_List]\n");
167         result.Append("GO\n");
168         result.Append("CREATE procedure [" + TableName + "_List]\n");
169         result.Append("AS\n");
170         result.Append("select * from " + TableName + "\n");
171         result.Append("\n");
172         result.Append("\n");
173         result.Append("\n");
174         result.Append("\n");
175         #endregion
176 
177         #region 设置
178         result.Append("/*\n");
179         result.Append("*Name: [" + TableName + "_Set]\n");
180         result.Append("*Description: 设置\n");
181         result.Append("*Author: C#\n");
182         result.Append("*/\n");
183         result.Append("IF EXISTS (SELECT NAME FROM sysobjects WHERE id = OBJECT_ID(N'[" + TableName + "_Set]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)\n");
184         result.Append("DROP PROCEDURE [" + TableName + "_Set]\n");
185         result.Append("GO\n");
186         result.Append("CREATE procedure [" + TableName + "_Set]\n");
187         for (int k = 0; k < TableList.Rows.Count; k++)
188         {
189             if (k + 1 == TableList.Rows.Count)
190             {
191                 if (TableList.Rows[k]["character_maximum_length"].ToString() == "")
192                 {
193                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + "\n");
194                 }
195                 else if (TableList.Rows[k]["character_maximum_length"].ToString() == "1073741823")
196                 {
197                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + "\n");
198                 }
199                 else
200                 {
201                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + "(" + TableList.Rows[k]["character_maximum_length"].ToString() + ")\n");
202                 }
203             }
204             else
205             {
206                 if (TableList.Rows[k]["character_maximum_length"].ToString() == "")
207                 {
208                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + ",\n");
209                 }
210                 else if (TableList.Rows[k]["character_maximum_length"].ToString() == "1073741823")
211                 {
212                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + ",\n");
213                 }
214                 else
215                 {
216                     result.Append("@" + TableList.Rows[k]["column_name"].ToString() + " " + TableList.Rows[k]["data_type"].ToString() + "(" + TableList.Rows[k]["character_maximum_length"].ToString() + "),\n");
217                 }
218             }
219         }
220         result.Append("AS\n");
221         result.Append("update " + TableName + " Set\n");
222         for (int k = 1; k < TableList.Rows.Count; k++)
223         {
224             if (k + 1 == TableList.Rows.Count)
225             {
226                 result.Append(TableList.Rows[k]["column_name"].ToString() + "=@" + TableList.Rows[k]["column_name"].ToString() + "\n");
227             }
228             else
229             {
230                 result.Append(TableList.Rows[k]["column_name"].ToString() + "=@" + TableList.Rows[k]["column_name"].ToString() + ",\n");
231             }
232         }
233         result.Append("where " + TableList.Rows[0]["column_name"].ToString() + "=@" + TableList.Rows[0]["column_name"].ToString() + "\n");
234         #endregion
235 
236         this.Entity_Result.Text = result.ToString();
237     }
238 
239     protected void Entity_Data_Click(object sender, EventArgs e)
240     {
241         StringBuilder result = new StringBuilder();
242         String TableName = this.DB_TableName.Text;
243         DataTable TableList = MethodLibrary.ExecuteDIYSql("select top 0 * from " + TableName);
244         String title = this.Entity_Title.Text + "Data";
245         result.Append("public class " + title + "\n");
246         result.Append("{\n");
247         result.Append("#region 添加\n");
248         result.Append("/// <summary>\n");
249         result.Append("/// 添加\n");
250         result.Append("/// </summary>\n");
251         result.Append("/// <param name=\"_UserInfo\">实体类</param>\n");
252         result.Append("/// <returns></returns>\n");
253         result.Append("public static Boolean Add(" + this.Entity_Title.Text + "Info _" + this.Entity_Title.Text + "Info)\n");
254         result.Append("{\n");
255         result.Append("SqlParameter[] parm ={\n");
256         for (int t = 1; t < TableList.Columns.Count; t++)
257         {
258             result.Append("                                     new SqlParameter(\"" + TableList.Columns[t].ColumnName + "\",_" + this.Entity_Title.Text + "Info." + TableList.Columns[t].ColumnName + "),\n");
259         }
260         result.Append("                                  };\n");
261         result.Append("SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString5, CommandType.StoredProcedure, \"" + TableName + "_Add\", parm);\n");
262         result.Append("return true;\n");
263         result.Append("}\n");
264         result.Append("#endregion\n\n");
265 
266 
267         result.Append("#region 删除\n");
268         result.Append("/// <summary>\n");
269         result.Append("/// 删除\n");
270         result.Append("/// </summary>\n");
271         result.Append("/// <param name=\"" + TableList.Columns[0].ColumnName + "\">SN</param>\n");
272         result.Append("/// <returns></returns>\n");
273         result.Append("public static Boolean Delete(" + TableList.Columns[0].DataType.ToString().Replace("System.", "") + " " + TableList.Columns[0].ColumnName + ")\n");
274         result.Append("{\n");
275         result.Append("SqlParameter[] parm ={");
276         result.Append("new SqlParameter(\"" + TableList.Columns[0].ColumnName + "\"," + TableList.Columns[0].ColumnName + "),");
277         result.Append("};\n");
278         result.Append("SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString5, CommandType.StoredProcedure, \"" + TableName + "_Delete\", parm);\n");
279         result.Append("return true;\n");
280         result.Append("}\n");
281         result.Append("#endregion\n\n");
282 
283 
284         result.Append("#region 获取\n");
285         result.Append("/// <summary>\n");
286         result.Append("/// 获取\n");
287         result.Append("/// </summary>\n");
288         result.Append("/// <param name=\"" + TableList.Columns[0].ColumnName + "\">SN</param>\n");
289         result.Append("/// <returns></returns>\n");
290         result.Append("public static " + this.Entity_Title.Text + "Info Get(" + TableList.Columns[0].DataType.ToString().Replace("System.", "") + " " + TableList.Columns[0].ColumnName + ")\n");
291         result.Append("{\n");
292         result.Append(this.Entity_Title.Text + "Info _" + this.Entity_Title.Text + "Info = new " + this.Entity_Title.Text + "Info();\n");
293         result.Append("SqlParameter[] parm ={");
294         result.Append("new SqlParameter(\"" + TableList.Columns[0].ColumnName + "\"," + TableList.Columns[0].ColumnName + "),");
295         result.Append("};\n");
296         result.Append("using (SqlDataReader _SDR = SqlHelper.ExecuteReader(SqlHelper.ConnectionString5, CommandType.StoredProcedure, \"" + TableName + "_Get\", parm))\n");
297         result.Append("{\n");
298         result.Append("if (_SDR.Read())\n");
299         result.Append("{\n");
300         for (int t = 0; t < TableList.Columns.Count; t++)
301         {
302             result.Append("_" + this.Entity_Title.Text + "Info." + TableList.Columns[t].ColumnName + " = Convert.To" + TableList.Columns[t].DataType.ToString().Replace("System.", "") + "(_SDR[\"" + TableList.Columns[t].ColumnName + "\"]);\n");
303         }
304         result.Append("}\n");
305         result.Append("_SDR.Close();\n");
306         result.Append("_SDR.Dispose();\n");
307         result.Append("}\n");
308         result.Append("return _" + this.Entity_Title.Text + "Info;\n");
309         result.Append("}\n");
310         result.Append("#endregion\n\n");
311 
312 
313         result.Append("#region 列表\n");
314         result.Append("/// <summary>\n");
315         result.Append("/// \n");
316         result.Append("/// </summary>\n");
317         result.Append("public static DataTable List()\n");
318         result.Append("{\n");
319         result.Append("DataSet _DataSet = SqlHelper.ExecuteDataSet(SqlHelper.ConnectionString5, CommandType.StoredProcedure, \"" + TableName + "_List\", null);\n");
320         result.Append("return _DataSet.Tables[0];\n");
321         result.Append("}\n");
322         result.Append("#endregion\n\n");
323 
324 
325         result.Append("#region 设置\n");
326         result.Append("/// <summary>\n");
327         result.Append("/// 设置\n");
328         result.Append("/// </summary>\n");
329         result.Append("/// <param name=\"_UserInfo\">实体类</param>\n");
330         result.Append("/// <returns></returns>\n");
331         result.Append("public static Boolean Set(" + this.Entity_Title.Text + "Info _" + this.Entity_Title.Text + "Info)\n");
332         result.Append("{\n");
333         result.Append("SqlParameter[] parm ={\n");
334         for (int t = 0; t < TableList.Columns.Count; t++)
335         {
336             result.Append("                                     new SqlParameter(\"" + TableList.Columns[t].ColumnName + "\",_" + this.Entity_Title.Text + "Info." + TableList.Columns[t].ColumnName + "),\n");
337         }
338         result.Append("                                  };\n");
339         result.Append("SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString5, CommandType.StoredProcedure, \"" + TableName + "_Set\", parm);\n");
340         result.Append("return true;\n");
341         result.Append("}\n");
342         result.Append("#endregion\n");
343 
344         result.Append("}\n");
345 
346         this.Entity_Result.Text = result.ToString();
347     }
348 
349     protected void Button2_Click(object sender, EventArgs e)
350     {
351         StringBuilder result = new StringBuilder();
352         String TableName = this.DB_TableName.Text;
353         DataTable TableList = MethodLibrary.ExecuteDIYSql("select top 0 * from " + TableName);
354         String title = "My" + this.Entity_Title.Text;
355         result.Append("public class " + title + "\n");
356         result.Append("{\n");
357         result.Append("#region 添加\n");
358         result.Append("/// <summary>\n");
359         result.Append("/// 添加\n");
360         result.Append("/// </summary>\n");
361         result.Append("/// <param name=\"_UserInfo\">实体类</param>\n");
362         result.Append("/// <returns></returns>\n");
363         result.Append("public static Boolean Add(" + this.Entity_Title.Text + "Info _" + this.Entity_Title.Text + "Info)\n");
364         result.Append("{\n");
365         result.Append("return " + this.Entity_Title.Text + "Data.Add(_" + this.Entity_Title.Text + "Info);\n");
366         result.Append("}\n");
367         result.Append("#endregion\n\n");
368 
369 
370         result.Append("#region 删除\n");
371         result.Append("/// <summary>\n");
372         result.Append("/// 删除\n");
373         result.Append("/// </summary>\n");
374         result.Append("/// <param name=\"" + TableList.Columns[0].ColumnName + "\">SN</param>\n");
375         result.Append("/// <returns></returns>\n");
376         result.Append("public static Boolean Delete(" + TableList.Columns[0].DataType.ToString().Replace("System.", "") + " " + TableList.Columns[0].ColumnName + ")\n");
377         result.Append("{\n");
378         result.Append("return " + this.Entity_Title.Text + "Data.Delete(" + TableList.Columns[0].ColumnName + ");\n");
379         result.Append("}\n");
380         result.Append("#endregion\n\n");
381 
382 
383         result.Append("#region 获取\n");
384         result.Append("/// <summary>\n");
385         result.Append("/// 获取\n");
386         result.Append("/// </summary>\n");
387         result.Append("/// <param name=\"" + TableList.Columns[0].ColumnName + "\">SN</param>\n");
388         result.Append("/// <returns></returns>\n");
389         result.Append("public static " + this.Entity_Title.Text + "Info Get(" + TableList.Columns[0].DataType.ToString().Replace("System.", "") + " " + TableList.Columns[0].ColumnName + ")\n");
390         result.Append("{\n");
391         result.Append("return " + this.Entity_Title.Text + "Data.Get(" + TableList.Columns[0].ColumnName + ");\n");
392         result.Append("}\n");
393         result.Append("#endregion\n\n");
394 
395 
396         result.Append("#region 列表\n");
397         result.Append("/// <summary>\n");
398         result.Append("/// \n");
399         result.Append("/// </summary>\n");
400         result.Append("public static DataTable List()\n");
401         result.Append("{\n");
402         result.Append("return " + this.Entity_Title.Text + "Data.List();\n");
403         result.Append("}\n");
404         result.Append("#endregion\n\n");
405 
406 
407         result.Append("#region 设置\n");
408         result.Append("/// <summary>\n");
409         result.Append("/// 设置\n");
410         result.Append("/// </summary>\n");
411         result.Append("/// <param name=\"_UserInfo\">实体类</param>\n");
412         result.Append("/// <returns></returns>\n");
413         result.Append("public static Boolean Set(" + this.Entity_Title.Text + "Info _" + this.Entity_Title.Text + "Info)\n");
414         result.Append("{\n");
415         result.Append("return " + this.Entity_Title.Text + "Data.Set(_" + this.Entity_Title.Text + "Info);\n");
416         result.Append("}\n");
417         result.Append("#endregion\n");
418 
419         result.Append("}\n");
420 
421         this.Entity_Result.Text = result.ToString();
422     }
423 
424     protected void Button21_Click(object sender, EventArgs e)
425     {
426         StringBuilder result = new StringBuilder();
427         String TableName = this.DB_TableName.Text;
428         DataTable TableList = MethodLibrary.ExecuteDIYSql("select column_name,data_type,character_maximum_length from information_schema.columns where table_name = '" + TableName + "'");
429 
430         #region 添加
431         for (int k = 0; k < TableList.Rows.Count; k++)
432         {
433             if (k + 1 == TableList.Rows.Count)
434             {
435                 result.Append(TableList.Rows[k]["column_name"].ToString() + "\n\n");
436             }
437             else
438             {
439                 result.Append(TableList.Rows[k]["Column_Name"].ToString() + ",");
440             }
441         }
442         #endregion
443 
444         this.Entity_Result.Text = result.ToString();
445     }
446 
447     protected void DB_Submit5_Click(object sender, EventArgs e)
448     {
449         StringBuilder result = new StringBuilder();
450         String TableName = this.DB_TableName.Text;
451         DataTable TableList = MethodLibrary.ExecuteDIYSql("select top 0 * from " + TableName);
452         String title = this.Entity_Title.Text + "Info";
453 
454         result.Append("<table>\n");
455         for (int k = 0; k < TableList.Columns.Count; k++)
456         {
457             string _ColumnName = TableList.Columns[k].ColumnName.Split('_')[1];
458             if (TableList.Columns[k].ColumnName.Split('_').Length > 2)
459             {
460                 _ColumnName = TableList.Columns[k].ColumnName.Split('_')[1] + TableList.Columns[k].ColumnName.Split('_')[2];
461             }
462             result.Append("    <tr>\n");
463             result.Append("        <td class=\"infozuo\">" + TableList.Columns[k].ColumnName + ":</td>\n");
464             result.Append("        <td class=\"infoyou\"><asp:TextBox ID=\"Texx_" + _ColumnName + "\" MaxLength=\"50\" runat=\"server\" CssClass=\"class\"></asp:TextBox></td>\n");
465             result.Append("    </tr>\n\n");
466         }
467         result.Append("</table>");
468         result.Append("\n\n\n\n\n");
469 
470 
471         result.Append(title + " _" + title + " = new " + title + "();\n\n");
472         for (int k = 0; k < TableList.Columns.Count; k++)
473         {
474             string _ColumnName = TableList.Columns[k].ColumnName.Split('_')[1];
475             if (TableList.Columns[k].ColumnName.Split('_').Length > 2)
476             {
477                 _ColumnName = TableList.Columns[k].ColumnName.Split('_')[1] + TableList.Columns[k].ColumnName.Split('_')[2];
478             }
479             result.Append("this.Texx_" + _ColumnName + ".Text = _" + title + "." + TableList.Columns[k].ColumnName + ";\n");
480         }
481 
482         result.Append("\n\n\n\n\n");
483 
484 
485         result.Append(title + " _" + title + " = new " + title + "();\n\n");
486         for (int k = 0; k < TableList.Columns.Count; k++)
487         {
488             string _ColumnName = TableList.Columns[k].ColumnName.Split('_')[1];
489             if (TableList.Columns[k].ColumnName.Split('_').Length > 2)
490             {
491                 _ColumnName = _ColumnName + TableList.Columns[k].ColumnName.Split('_')[2];
492             }
493             result.Append("_" + title + "." + TableList.Columns[k].ColumnName + " = this.Texx_" + _ColumnName + ".Text;\n");
494         }
495 
496         this.Entity_Result.Text = result.ToString();
497 
498     }

方便使用连接数据库执行数据库,还需要在业务层建立一个MethodLibrary类,在类里添加MethodLibrary.ExecuteDIYSql方法。

 1  #region 执行指定SQL
 2         /// <summary>
 3         /// 执行指定SQL
 4         /// </summary>
 5         /// <param name="_DIYSql">SQL语句</param>
 6         /// <returns></returns>
 7         public static DataTable ExecuteDIYSql(String _DIYSql)
 8         {
 9             DataSet _TempSet = SqlHelper.ExecuteDataSet(SqlHelper.ConnectionString, CommandType.Text, _DIYSql, null);
10             return _TempSet.Tables[0];
11         }
12         #endregion

 

posted @ 2018-06-18 14:26  张三道  阅读(333)  评论(0)    收藏  举报