昨天完成了论坛组的整改。为数据库表(forums_Forums)添加了Icon,Manager二个字段,并对forum.vb代码进行了部分修改了。
今天在添加论坛联盟版块的时候,考虑了完整性及自己也不愿意从数据库中返回Idataread类型,然后绑定到repeater控件中,所以最后决定从DotNetNuke开源项目中引入了CBO类和DataCahe,Null这三个类中,对返回的数据集进行填充,以返回Arrarlist集合。
以前一直以为AspNetForum对数据库操作是使用SqlHelpe类。这回为了可读性,所以采用了SQLHEOPER类。只需要一行代码,就完成了对数据库的操作。
Public Overrides Function GetForumShare() As IDataReader
Return SqlHelper.ExecuteReader(ConnectionString, databaseOwner + ".forums_getforumshare")
End Function
Return SqlHelper.ExecuteReader(ConnectionString, databaseOwner + ".forums_getforumshare")
End Function
后续:现在SqlProvider类已经从小春那里拿过来VB.NET版本了。现在还有最后一个web项目为c#代码。痛苦当中……刚刚碰到一个问题,是c#与VB.NET的区别造成,浪费了我近半个小时(显示联盟论坛网站的LOGO代码)
<%# Formatter.FormatLogo(DataBinder.Eval(Container.DataItem,"Logo")%>
Formatter.VB
Public Shared Function FormatLogo(ByVal Logo As String) As String
If Logo = "" Then
Return ""
End If
Dim strImage As StringBuilder = New StringBuilder
strImage.AppendFormat("<image src={0}>", Logo)
Return strImage.ToString
End Function
If Logo = "" Then
Return ""
End If
Dim strImage As StringBuilder = New StringBuilder
strImage.AppendFormat("<image src={0}>", Logo)
Return strImage.ToString
End Function
运行程序,提示
编译器错误信息: CS1502: 与“AspNetForums.Components.Formatter.FormatLogo(string)”最匹配的重载方法具有一些无效参数
折腾了好长,后来尝试着
<%# Formatter.FormatLogo(DataBinder.Eval(Container.DataItem,"Logo").toString)%>
还是出错。郁闷当中。只好按C#方式,进行转换
<%# Formatter.FormatLogo(String)DataBinder.Eval(Container.DataItem,"Logo")%>
才总算结果了这个问题~而且WEB项目是C#,每次都要注意自己的大小写。实在是痛苦~~