代码改变世界

CodeSmith 学习之数据库遍历数据库表的所有字段

2011-04-27 10:20  废墟中的垃圾  阅读(931)  评论(0)    收藏  举报

自从有了 实体到数据库的框架之后,就很少直接写数据库了,因为这只是一种存储方式,而不是程序员需要太关注的。

但是事情往往不是用一种方式就可以完全解决的。比如已经有了数据库,那么这个项目如何处理呢,那么就需要自己写相关的反相生成代码。

所以开始看看 codesmith。 废话不多说,这里写的最好先看看一些 codesmith的基础,当然只要你有一定的编程能力,这个应该也能直接看懂。

确定我们接下来要做的事情。

第一个:(C#模板)可以访问数据库(Sqlserver,接下来不会再说,都是Sqlserver。其他可以类推)里面的所有表、字段。

第二个,数据库表的模板独立,数据库模板调用数据库表模板

第三个,根据不同的字段属性,写出来不同的内容

第四个,输出自己需要的模板。

第五个,通过模板生成我们需要的代码文件。

当然,如果不太明白上面五个的意思也没有关系。我们接下来会具体进行操作。

对于数据库的操作,codesmith 已经内置了一个引擎,我们可以使用 SchemaExplorer 来进行相应的操作。

现在我们做一个最简单的,连接数据库一个表,并且把表明输出。

<%--模板使用语言。目标语言--%>

<%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False" Description="Template description here." %>

<%--引用ShemaExplorer--%>

<%@ Assembly Name="SchemaExplorer" %>

<%--引入ShemaExplorer命名空间--%>

<%@ Import Namespace="SchemaExplorer" %>

<%--通过ShemaExplorer命名空间下的 SchemaExplorer.TableSchema 类型,来定义一个数据库表对象。--%>

<%@ Property Name="TableSource" Type="SchemaExplorer.TableSchema" Category="Context" Description="" %>

<%--输出表名称--%>

<%Response.Write(this.TableSource.Name);%>

这样我们就可以读取数据库中的表的名字了。

接下来我们来遍历所有的字段

<%

for(int i = 0;i< this.TableSource.Columns.Count;i++)

{

Response.WriteLine(this.TableSource.Columns[i].Name);

}

%>

很简单吧,当然,还有更多的属性,大家可以自己查看。