最近今天没事研究了一下关于动软生成器的代码,无奈没有找到关键的部分;今天就把我对获取数据结构的部分代码公布出来,仅供那些想了解的这部分代码的人参考:

    关于这个程序大概分为两个部分,一部分是获取数据结构,二、根据数据库表结构生成想要的代码

    一、代码部分:

            

SqlConnection con = GetConntion();

                con.Open();

                SqlDataAdapter adapter = new SqlDataAdapter("select name from sysdatabases ", con);

                DataTable databaseName = new DataTable();

                adapter.Fill(databaseName); //获取所有的数据库名字

//c#代码默认数据库的第一个数据,我们想要默认自己的数据库,需要进行设置

SqlCommand cmd = new SqlCommand(string.Format("use {0}", databaseName), con);

                cmd.ExecuteNonQuery();

//res 数组是Schema架构的参数0:catalog;1:架构;2:表名称

//获取数据库中所有的表的名称

string[] res = new string[4];

                res[1] = "dbo";

                DataTable table = con.GetSchema("Tables", res);

                this.cmb_Tables.DataSource = table;

                this.cmb_Tables.DisplayMember = "TABLE_NAME";

//获取表中列的名称

string[] res = new string[4];

                res[1] = "dbo";

                res[2] = tableName.ToString();

                DataTable table = con.GetSchema("Columns", res);

以上就是获取的数据库表结构的主要代码

二、根据获取数据表结构代码进行拼写自己的简单三层,在这儿就不赘述了,比较简单(简单的字符串拼接)

    例如:表示注释的代码”\t:表示缩进,相当于Tab按下; \n:表示换行“

strBuilder.Append("\t\t/// <summary>\n");

                strBuilder.Append("\t\t/// " + tableName + "Info \n");

                strBuilder.Append("\t\t/// <param name=\"strWhere\">" + tableName + "Info</param>");

                strBuilder.Append("\t\t/// </summary>\n");


以上就是我对动软生成器的代码的理解,希望对有需要的有所帮助