ClubWEBSite starter kit二次开发及Vs2005中ObjectDataSource控件的应用小记

  Vs2005给我们带来很多优秀的初学者工具包,说是说初学者工具包,以我的心得来看,其实这些工具包应该是我们了解和熟悉vs2005以及.net2.0新特性最好的指导性工具包,不同层次的程序员都可以从中得到收获。

  在拿到vs2005的第一时间,我就应用其中的Club Web Site 工具包,经过简单的本地化,包括:将所有的标签文字统一到资源文件;加入HtmlEditTextBox;并加强编辑器提供图片及附近上传功能;所有Club原始工具包中未完成的静态文本部分实现数据库管理。经过以上修改,基本可以满足我的基本需求和应用。

其中静态文本动态化(暂且这么称呼),因为是初次使用vs2005,所以全部应用SqlDataSource控件作为数据提供中间件,配合FormView,拖拖拽拽就OK达,感觉真是非常方便和快捷、高效。这里唯一需要注意的就是,如果你采取完全交由SqlDataSource控件来处理数据的获取,那么SqlDataSource控件会在UI层生成大量的SQL字符串,如相应的SELECTINSERT等语句,造成过多的暴露数据库中表结构信息。因此,建议即使使用SqlDataSource控件,仍须配合存储过程为佳。

  随着对站点功能的加强,很希望访客可以在小站留下自己的观感,所以萌发达在Club Web Sit工具包二次开发加入留言板功能的想法,心动不如行动,说干就干。

  首先,决定采用ObjectDataSourc控件,采取3层架构来实现留言板功能模块:设计和数据库表结构、相应存储过程。举例说明:

 1 ExpandedBlockStart.gif ContractedBlock.gif          /**/ /// <summary>
 2InBlock.gif        /// 获取指定留言信息
 3InBlock.gif        /// </summary>
 4InBlock.gif        /// <param name="id"></param>
 5ExpandedBlockEnd.gif        /// <returns></returns>

 6 None.gif          public   static  List < Leaveword >  GetLeaveword( int  id ,  int  mode)
 7 ExpandedBlockStart.gifContractedBlock.gif         dot.gif {
 8InBlock.gif            using (SqlConnection sqlConnection = new SqlConnection(ENConfiguration.GetConnectionString()))
 9ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
10InBlock.gif                using (SqlCommand sqlCommand = new SqlCommand("GetLeavewordByID", sqlConnection))
11ExpandedSubBlockStart.gifContractedSubBlock.gif                dot.gif{
12InBlock.gif                    sqlCommand.CommandType = CommandType.StoredProcedure;
13InBlock.gif                    sqlCommand.Parameters.Add(new SqlParameter("@ID", id));
14InBlock.gif                    sqlCommand.Parameters.Add(new SqlParameter("@Mode", mode));
15InBlock.gif
16InBlock.gif                    sqlConnection.Open();
17InBlock.gif                    using (SqlDataReader dataReader = sqlCommand.ExecuteReader())
18ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
19InBlock.gif                        List<Leaveword> list = new List<Leaveword>();
20InBlock.gif                        if (dataReader.Read())
21ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
22InBlock.gif                            int currentID = (int)dataReader["ID"];
23InBlock.gif                            string title = (string)dataReader["Title"];
24InBlock.gif                            string description = (string)dataReader["Description"];
25InBlock.gif                            DateTime publishDate = (DateTime)dataReader["PublishDate"];
26InBlock.gif                            string guest = (string)dataReader["guest"];
27InBlock.gif
28InBlock.gif                            Leaveword leaveword = new Leaveword(currentID, title, description, publishDate, guest);
29InBlock.gif
30InBlock.gif                            list.Add(leaveword);
31InBlock.gif
32ExpandedSubBlockEnd.gif                        }

33InBlock.gif                        return list;
34ExpandedSubBlockEnd.gif                    }

35ExpandedSubBlockEnd.gif                }

36ExpandedSubBlockEnd.gif            }

37ExpandedBlockEnd.gif        }
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

  此处GetLeaveword方法返回List<Leaveword>对象,正是为配合ObjectDataSource的要求而定义,这样ObjectDataSource作为其他数据绑定控件时,才能正确工作。

  具体效果可以访问:http://www.tianyuanedu.net/smartweb/Leavewords/default.aspx

  我这里仅是抛砖引玉,希望可以看到更多好的案例及Starter kit应用。

转载于:https://www.cnblogs.com/Luna/archive/2005/12/17/299068.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值