好久没写博克了,一是工作忙,二是最近感冒了。现在终于好了一点。
园子里好像在谈论OO、命根子,我也说两句吧。命根子嘛,我觉得是竞争力,呵呵,不多说了,免得跑题。我主要想说的是我写代码的方式。
这里呢我利用我常用的东东写个实例,抛砖引玉,大家也都来批批,帮助我提高嘛。
我常用的呢是 数据访问层(简单理解是SQLHelp,但是绝不等于)、分页控件等自定义控件、UserControl等。
实例呢就是做一个很简单的“企业管理器”,等等,不要想的太远,我没想做那么大,我只想达到如下几个功能即可。
1、显示SQL里面的数据库名。
2、根据选择的数据库名显示数据库里的表名。
3、选择一个表然后以分页的方式显示数据。
4、对数据可以进行查询。(不好意思,还没完成)
5、对选择的数据可以编辑,可以添加、删除数据。(不好意思还是没有完成)。
ps:
什么?您问,还有两项没有完成就赶往外发?说实在的,代码在上个星期日就写完了,可是上不了网,就一直延误下来了。我想还是先发出来,然后再打不定吧,呵呵。如果大家都不感兴趣呢,那我也就省事了。
先发一个效果图吧。
图片是以NorhWind数据库里的Orders表为例。
环境介绍
对照环境:使用数据库作持久化的项目。
数据库:SQL2000 、SQL2005 。SQL2008 还没有安装,所以不知道是否支持
编程语言:Asp.net(C#)。B/S
代码行数:150多行( /zh/Default.aspx得后置代码,目前的功能)。
基本上没有OO,顶多也就是基于OO。其实还是面向过程的思路,代码有点乱,还没有整理。
基本上是一层的,但是也不是说没有分层。粉煤分层的就不讨论了,没有甚么意义,呵呵。
优点:
1、代码少,我觉得代码少意味着开发速度快,好维护。
2、利用一个控件来实现分页的功能,而要实现这个分页功能不需要在数据库里添加存储过程,只需要给分页控件设置几个属性就可以了。
3、分页效率高,如果谁有海量数据可以来测试一下。
4、读取SQL 里的数据库名、表名、字段名的方法。(可能您早就知道了)
不足:
不好意思分页控件的详细用法还没有写呢。明天补充。
另外是用VS2003写的,还没有升级到VS2005 。不过数据库倒是可以用SQL 2005 。
另外把代码拷到VS2005里面也是可以正常运行的吧。
下面不知道该写点什么了,先这样吧,呵呵。
对了忘记上传文件了。
http://files.cnblogs.com/jyk/ys.rar
分页控件的源码。
http://www.cnblogs.com/jyk/archive/2007/11/04/948713.html
(一开始的写错了,现已更正,多谢 “被你烧了” 提醒)
还是直接发个源码吧。
园子里好像在谈论OO、命根子,我也说两句吧。命根子嘛,我觉得是竞争力,呵呵,不多说了,免得跑题。我主要想说的是我写代码的方式。
这里呢我利用我常用的东东写个实例,抛砖引玉,大家也都来批批,帮助我提高嘛。
我常用的呢是 数据访问层(简单理解是SQLHelp,但是绝不等于)、分页控件等自定义控件、UserControl等。
实例呢就是做一个很简单的“企业管理器”,等等,不要想的太远,我没想做那么大,我只想达到如下几个功能即可。
1、显示SQL里面的数据库名。
2、根据选择的数据库名显示数据库里的表名。
3、选择一个表然后以分页的方式显示数据。
4、对数据可以进行查询。(不好意思,还没完成)
5、对选择的数据可以编辑,可以添加、删除数据。(不好意思还是没有完成)。
ps:
什么?您问,还有两项没有完成就赶往外发?说实在的,代码在上个星期日就写完了,可是上不了网,就一直延误下来了。我想还是先发出来,然后再打不定吧,呵呵。如果大家都不感兴趣呢,那我也就省事了。
先发一个效果图吧。
![](https://i-blog.csdnimg.cn/blog_migrate/d3ab319badfe6ea0a441dea9a235fa0e.gif)
图片是以NorhWind数据库里的Orders表为例。
环境介绍
对照环境:使用数据库作持久化的项目。
数据库:SQL2000 、SQL2005 。SQL2008 还没有安装,所以不知道是否支持
编程语言:Asp.net(C#)。B/S
代码行数:150多行( /zh/Default.aspx得后置代码,目前的功能)。
基本上没有OO,顶多也就是基于OO。其实还是面向过程的思路,代码有点乱,还没有整理。
基本上是一层的,但是也不是说没有分层。粉煤分层的就不讨论了,没有甚么意义,呵呵。
优点:
1、代码少,我觉得代码少意味着开发速度快,好维护。
2、利用一个控件来实现分页的功能,而要实现这个分页功能不需要在数据库里添加存储过程,只需要给分页控件设置几个属性就可以了。
3、分页效率高,如果谁有海量数据可以来测试一下。
4、读取SQL 里的数据库名、表名、字段名的方法。(可能您早就知道了)
不足:
不好意思分页控件的详细用法还没有写呢。明天补充。
另外是用VS2003写的,还没有升级到VS2005 。不过数据库倒是可以用SQL 2005 。
另外把代码拷到VS2005里面也是可以正常运行的吧。
下面不知道该写点什么了,先这样吧,呵呵。
对了忘记上传文件了。
http://files.cnblogs.com/jyk/ys.rar
分页控件的源码。
http://www.cnblogs.com/jyk/archive/2007/11/04/948713.html
(一开始的写错了,现已更正,多谢 “被你烧了” 提醒)
还是直接发个源码吧。
1
//
实例化数据访问层
2
DataAccessLayer dal
=
new
DataAccessLayer();
3
//
连接master数据库
4
DataAccessLayer dal_DB
=
new
DataAccessLayer();
5
6
控件
16
17
private
void
Page_Load(
object
sender, System.EventArgs e)
18
{
19
// 在此处放置用户代码以初始化页面
20
Response.Cache.SetNoStore();
21
Page1.PubShowDataObject = DG; //设置显示数据的控件,还可以是DataList、Repeater 等。
22
if (Page.IsPostBack)
23
{
24
if (Lst_DB.Items.Count > 1)
25
{
26
//设置分页控件的连接字符串。
27
string conn = GetConnString(Lst_DB.SelectedItem.Text);
28
Page1.PubConnString = conn ;
29
dal.cnString = conn;
30
}
31
}
32
}
33
34
打开系统数据库,以提取数据库名称的信息
44![](/Images/OutliningIndicators/None.gif)
45
根据数据库名显示数据库里的表。
57
58
根据选择地表名设置分页控件
97
98
获取连接字符串
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ContractedBlock.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
32
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/ContractedBlock.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/ContractedBlock.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/ContractedBlock.gif)
97
![](/Images/OutliningIndicators/None.gif)
98
![](/Images/OutliningIndicators/ContractedBlock.gif)