源码地址:http://files.cnblogs.com/Royal_WH/%e4%bb%a3%e7%a0%81%e7%94%9f%e6%88%90%e5%99%a8.rar
看一下解决方案管理器,很简单就二个项目:
Writer类就是用来生成代码的,那个SqlDataBase其实只提供一个数据库连接。
其实用到SqlDataBase里就两个函数:
///
Writer类中的方法就比较多了:
编写实体类的代码,最简单:
///
///
///
///
public string GetModelCode(DataTable dt, string namespaces, string projectname, string classname, string name) { try { dt = ClearHeard(dt); StringBuilder str = new StringBuilder(); str.Append("using System;" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append("namespace " + namespaces + "." + projectname); str.Append("" + Environment.NewLine + "{" + Environment.NewLine + ""); str.Append(" ///
+ " /// 日期:" + DateTime.Now + "" + Environment.NewLine
+ " ///
+ "" + Environment.NewLine + "" + " {" + Environment.NewLine + ""); for (int i = 0; i < dt.Rows.Count; i++) { if (conver(dt.Rows[i][2].ToString()) == "string") { str.Append(" private "
+ conver(dt.Rows[i][2].ToString()) + " " + dt.Rows[i][0].ToString().ToLower()
+ "=string.Empty" + ";" + Environment.NewLine + ""); } else if (conver(dt.Rows[i][2].ToString()) == "Guid") { str.Append(" private "
+ conver(dt.Rows[i][2].ToString()) + " " + dt.Rows[i][0].ToString().ToLower()
+ "=Guid.Empty" + ";" + Environment.NewLine + ""); } else { str.Append(" private "
+ conver(dt.Rows[i][2].ToString()) + " " + dt.Rows[i][0].ToString().ToLower()
+ "=" + conver(dt.Rows[i][2].ToString()) + ".MaxValue;" + Environment.NewLine + ""); } } for (int i = 0; i < dt.Rows.Count; i++) { str.Append("" + Environment.NewLine
+ " ///
+ dt.Rows[i][0].ToString() + "" + Environment.NewLine + " ///
+ Environment.NewLine + ""); str.Append(" public "
+ conver(dt.Rows[i][2].ToString()) + " " + dt.Rows[i][0].ToString() + ""
+ Environment.NewLine + ""); str.Append(" {" + Environment.NewLine
+ " set{" + dt.Rows[i][0].ToString().ToLower() + "=value;}"
+ Environment.NewLine + ""); str.Append(" get{ return "
+ dt.Rows[i][0].ToString().ToLower() + ";}" + Environment.NewLine
+ " }" + Environment.NewLine + ""); } str.Append(" }" + Environment.NewLine
+ "}" + Environment.NewLine + "" + Environment.NewLine + ""); return str.ToString(); } catch { } return "出错了"; }
那个dt里的数据是我们从数据库里读出来的表头的信息和表结构的所有信息,里面有很多信息但我们只要一部分,所以我们把其它列的信息去掉:
///
///
我们来看下从数据库读取出来的dt的信息:
第一行是我表里所有属性,然后是列序,大小等等。上面的ClearHeard函数就是把我们不用的去掉。 我们看一下生成好的实体类的代码:
using System; namespace Thunder. { ///
同理我们可以生成我们所要的数据层的代码,数据层代码就不在这展示了,要不文章搞的太长又不少博友看不下去了!
这里讲一下数据层,因为数据层要配合数据库操作类来使用的!我是用静态类来写数据库操作的,可能和有些博友不是用的静态类,那就要在数据层声明一个数据操作类的实例了。 先看下我的数据层代码吧:
///
///
///
///
public string GetDALCode(DataTable dt, string namespaces, string projectname, string classname, string name) { dt = ClearHeard(dt); StringBuilder str = new StringBuilder(); #region 数据类头信息 1 str.Append("using System;" + Environment.NewLine + ""); str.Append("using System.Text;" + Environment.NewLine + ""); str.Append("using System.Data;" + Environment.NewLine + ""); str.Append("using System.Data.SqlClient;" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append("using Angel.Data;" + Environment.NewLine + ""); str.Append("using " + namespaces + ".Model;" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append("namespace " + namespaces + "." + projectname); str.Append("" + Environment.NewLine + "{" + Environment.NewLine + ""); str.Append(" ///
+ " 数据库访问类" + Environment.NewLine + " ///
+ " /// 根据指定的 " + dt.Rows[0][0].ToString() + " 判断数据记录是否存在" + Environment.NewLine
+ " ///
" + Environment.NewLine + ""); str.Append(" ///
+ "=\" + " + dt.Rows[0][0].ToString() + ".ToString());" + Environment.NewLine + ""); str.Append(" } // Exists" + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" ///
+ " /// 根据指定的存在性判断条件判断相应的数据集是否存在" + Environment.NewLine + " ///
" + Environment.NewLine + ""); str.Append(" ///
+ Environment.NewLine + " }" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" if (Convert.ToInt32(DatabaseHelper.ExecuteNonQuery(sql.ToString())) > 0)"
+ Environment.NewLine + " {" + Environment.NewLine); str.Append(" return true;" + Environment.NewLine); str.Append(" }" + Environment.NewLine); str.Append(" else" + Environment.NewLine); str.Append(" {" + Environment.NewLine); str.Append(" return false;" + Environment.NewLine); str.Append(" }" + Environment.NewLine); str.Append(" } //Exists" + Environment.NewLine + Environment.NewLine + Environment.NewLine); #endregion #region 增加一条记录 3 str.Append(" ///
+ " /// 根据指定的 " + classname + " 实体插入一条记录" + Environment.NewLine + " ///
" + Environment.NewLine + ""); str.Append(" ///
+ " != " + "string.Empty" + ")" + Environment.NewLine + " {"); str.Append("" + Environment.NewLine + " fields.Append(\"" + dt.Rows[i + 1][0].ToString()
+ ",\");" + Environment.NewLine + ""); str.Append(" values.Append(\"'\" + model." + dt.Rows[i + 1][0].ToString() + ".ToString()
+ \"',\");" + Environment.NewLine + " }" + Environment.NewLine + "" + Environment.NewLine + ""); } else if (conver(dt.Rows[i + 1][2].ToString()) == "Guid") { str.Append(" if (model." + dt.Rows[i + 1][0].ToString() + " != " + "Guid.Empty" + ")"
+ Environment.NewLine + " {"); str.Append("" + Environment.NewLine + " fields.Append(\"" + dt.Rows[i + 1][0].ToString() + ",\");"
+ Environment.NewLine + ""); str.Append(" values.Append(\"'\" + model." + dt.Rows[i + 1][0].ToString() + ".ToString() + \"',\");"
+ Environment.NewLine + " }" + Environment.NewLine + "" + Environment.NewLine + ""); } else if (conver(dt.Rows[i + 1][2].ToString()) == "DateTime") { str.Append(" if (model." + dt.Rows[i + 1][0].ToString() + " != " + "DateTime.MaxValue" + ")"
+ Environment.NewLine + " {"); str.Append("" + Environment.NewLine + " fields.Append(\"" + dt.Rows[i + 1][0].ToString() + ",\");"
+ Environment.NewLine + ""); str.Append(" values.Append(\"'\" + model." + dt.Rows[i + 1][0].ToString() + ".ToString() + \"',\");"
+ Environment.NewLine + " }" + Environment.NewLine + "" + Environment.NewLine + ""); } else { str.Append(" if (model." + dt.Rows[i + 1][0].ToString() + " != " + conver(dt.Rows[i + 1][2].ToString())
+ ".MaxValue)" + Environment.NewLine + " {"); str.Append("" + Environment.NewLine + " fields.Append(\"" + dt.Rows[i + 1][0].ToString() + ",\");"
+ Environment.NewLine + ""); str.Append(" values.Append(\"\" + model." + dt.Rows[i + 1][0].ToString() + ".ToString() + \",\");"
+ Environment.NewLine + " }" + Environment.NewLine + "" + Environment.NewLine + ""); } } str.Append(" sql.Append(\"INSERT INTO " + classname + "(\");" + Environment.NewLine + ""); str.Append(" sql.Append(fields.ToString().Remove(fields.Length - 1));" + Environment.NewLine + ""); str.Append(" sql.Append(\")\");" + Environment.NewLine + ""); str.Append(" sql.Append(\" VALUES (\");" + Environment.NewLine + ""); str.Append(" sql.Append(values.ToString().Remove(values.Length - 1));" + Environment.NewLine + ""); str.Append(" sql.Append(\"); SELECT @@Identity\");" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" return DatabaseHelper.ExecuteScalar(sql.ToString()).ToString();"); str.Append("" + Environment.NewLine + " } // Insert" + Environment.NewLine + "" + Environment.NewLine + ""
+ Environment.NewLine + ""); #endregion #region 更新一条记录 4 str.Append(" ///
+ Environment.NewLine + " ///
" + Environment.NewLine + ""); str.Append(" ///
+ Environment.NewLine + " {"); str.Append("" + Environment.NewLine + " sql.Append(\"" + dt.Rows[i + 1][0].ToString()
+ "='\" + model." + dt.Rows[i + 1][0].ToString() + ".ToString() + \"',\");" + Environment.NewLine + " }"
+ Environment.NewLine + "" + Environment.NewLine + ""); } else if (conver(dt.Rows[i + 1][2].ToString()) == "Guid") { str.Append(" if (model." + dt.Rows[i + 1][0].ToString() + " != " + "Guid.MaxValue" + ")"
+ Environment.NewLine + " {"); str.Append("" + Environment.NewLine + " sql.Append(\"" + dt.Rows[i + 1][0].ToString()
+ "='\" + model." + dt.Rows[i + 1][0].ToString() + ".ToString() + \"',\");" + Environment.NewLine + " }"
+ Environment.NewLine + "" + Environment.NewLine + ""); } else if (conver(dt.Rows[i + 1][2].ToString()) == "DateTime") { str.Append(" if (model." + dt.Rows[i + 1][0].ToString() + " != " + "DateTime.MaxValue" + ")"
+ Environment.NewLine + " {"); str.Append("" + Environment.NewLine + " sql.Append(\"" + dt.Rows[i + 1][0].ToString()
+ "='\" + model." + dt.Rows[i + 1][0].ToString() + ".ToString() + \"',\");" + Environment.NewLine + " }"
+ Environment.NewLine + "" + Environment.NewLine + ""); } else { str.Append(" if (model." + dt.Rows[i + 1][0].ToString() + " != " + conver(dt.Rows[i + 1][2].ToString()) + ".MaxValue)"
+ Environment.NewLine + " {"); str.Append("" + Environment.NewLine + " sql.Append(\"" + dt.Rows[i + 1][0].ToString()
+ "=\" + model." + dt.Rows[i + 1][0].ToString() + ".ToString() + \",\");" + Environment.NewLine + " }"
+ Environment.NewLine + "" + Environment.NewLine + ""); } } str.Append(" sql.Remove(sql.ToString().LastIndexOf(\",\"), 1);" + Environment.NewLine + ""); str.Append(" sql.Append(\" WHERE " + dt.Rows[0][0].ToString() + "=\" + model." + dt.Rows[0][0].ToString()
+ ".ToString());" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" DatabaseHelper.ExecuteNonQuery(sql.ToString());" + Environment.NewLine + " } // Update"
+ Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); #endregion #region 删除一条记录 5 str.Append(" ///
+ " 删除对应的记录" + Environment.NewLine + " ///
+ "
" + Environment.NewLine + ""); str.Append(" public int Delete(Guid " + dt.Rows[0][0].ToString() + ")" + Environment.NewLine + ""); str.Append(" {" + Environment.NewLine + ""); str.Append(" return this.Delete(\"" + dt.Rows[0][0].ToString() + "=\" + " + dt.Rows[0][0].ToString()
+ ".ToString());" + Environment.NewLine + ""); str.Append(" } // Delete" + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" ///
+ Environment.NewLine + " ///
" + Environment.NewLine + ""); str.Append(" public int Delete(string condition)" + Environment.NewLine + ""); str.Append(" {" + Environment.NewLine + ""); str.Append(" StringBuilder sql = new StringBuilder();" + Environment.NewLine
+ " sql.Append(\"DELETE FROM " + classname + "\");" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" if (condition.Trim() != \"\")" + Environment.NewLine + ""); str.Append(" {" + Environment.NewLine + ""); str.Append(" sql.Append(\" WHERE \" + condition);" + Environment.NewLine + ""); str.Append(" }" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" return Convert.ToInt32(DatabaseHelper.ExecuteNonQuery(sql.ToString()));" + Environment.NewLine + ""); str.Append(" } // Delete" + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); #endregion #region 根据T-SQL语句获取数据集 6 // 方法 1 str.Append(" ///
+ Environment.NewLine + " ///
+ Environment.NewLine + " ///
"
+ Environment.NewLine + " /// 查询条件
" + Environment.NewLine
+ " /// 排序方式
" + Environment.NewLine + " ///
+ Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" return DatabaseHelper.ExecuteDataset(sql.ToString(), \"Table\");" + Environment.NewLine
+ " } // GetDataSet " + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); // 方法 3 str.Append(" ///
+ " ///
" + Environment.NewLine); str.Append(" public DataSet GetDataSet(string sql)" + Environment.NewLine + ""); str.Append(" {" + Environment.NewLine + ""); str.Append(" return DatabaseHelper.ExecuteDataset(sql.ToString(), \"Table\");" + Environment.NewLine + ""); str.Append(" } // GetDataSet" + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); #endregion #region 更新表到数据库 7 str.Append(" ///
" + Environment.NewLine); str.Append(" /// SQL语句
" + Environment.NewLine); str.Append(" public void UpdateGridView(DataTable dt,string sql)" + Environment.NewLine + ""); str.Append(" {" + Environment.NewLine + ""); str.Append(" DatabaseHelper.FillDatabase(dt,sql);" + Environment.NewLine + ""); str.Append(" } //UpdateGridView" + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); #endregion #region 执行存储过程返回 DataSet 8 str.Append(" ///
" + Environment.NewLine
+ " /// 参数
" + Environment.NewLine + " /// 表名
" + Environment.NewLine
+ " ///
" + Environment.NewLine + " /// 表名
" + Environment.NewLine
+ " ///
+ Environment.NewLine + ""); str.Append(" } // ExecuteProc" + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" ///
" + Environment.NewLine + " ///
+ Environment.NewLine + ""); str.Append(" } // ExecuteProc" + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); str.Append(" ///
"
+ Environment.NewLine + " /// 存储过程参数
" + Environment.NewLine + " ///
" + Environment.NewLine + " ///
+ Environment.NewLine + ""); str.Append(" public string GetFirstNo(string sql)" + Environment.NewLine + ""); str.Append(" {" + Environment.NewLine + ""); str.Append(" return DatabaseHelper.ExecuteScalar(sql).ToString();" + Environment.NewLine + ""); str.Append(" } // GetFirstNo" + Environment.NewLine + "" + Environment.NewLine + "" + Environment.NewLine + ""); #endregion str.Append(" }" + Environment.NewLine + "}" + Environment.NewLine + ""); return str.ToString(); }
里面的方法有9个,其实写string都一样大家注意看这一个类DatabaseHelper这个就是操作数据库的类,请大家换成自己的类。 源码我等会会传上来!
最新评论