天天看点

很简单的企业管理器---我写程序的方式,几个自定义控件。

好久没写博克了,一是工作忙,二是最近感冒了。现在终于好了一点。

园子里好像在谈论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里面也是可以正常运行的吧。

下面不知道该写点什么了,先这样吧,呵呵。

对了忘记上传文件了。

<a href="http://files.cnblogs.com/jyk/ys.rar">http://files.cnblogs.com/jyk/ys.rar</a>

分页控件的源码。

<a href="http://www.naturefw.com">http://www.naturefw.com</a>

(一开始的写错了,现已更正,多谢 “被你烧了”  提醒)

还是直接发个源码吧。

  1

很简单的企业管理器---我写程序的方式,几个自定义控件。

//实例化数据访问层

  2

很简单的企业管理器---我写程序的方式,几个自定义控件。

        DataAccessLayer dal = new DataAccessLayer();

  3

很简单的企业管理器---我写程序的方式,几个自定义控件。

        //连接master数据库

  4

很简单的企业管理器---我写程序的方式,几个自定义控件。

        DataAccessLayer dal_DB = new DataAccessLayer();

  5

很简单的企业管理器---我写程序的方式,几个自定义控件。

  6

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

        控件#region 控件

  7

很简单的企业管理器---我写程序的方式,几个自定义控件。

        protected HBS.Controls.HBSTextBox Txt_SA;

  8

很简单的企业管理器---我写程序的方式,几个自定义控件。

        protected HBS.Controls.HBSTextBox Txt_PWD;

  9

很简单的企业管理器---我写程序的方式,几个自定义控件。

        protected HBS.Controls.HBSDropDownList Lst_DB;

 10

很简单的企业管理器---我写程序的方式,几个自定义控件。

        protected HBS.Controls.HBSPage Page1;

 11

很简单的企业管理器---我写程序的方式,几个自定义控件。

        protected HBS.Controls.HBSTextBox Txt_SL;

 12

很简单的企业管理器---我写程序的方式,几个自定义控件。

        protected System.Web.UI.WebControls.DataGrid DG;

 13

很简单的企业管理器---我写程序的方式,几个自定义控件。

        protected System.Web.UI.WebControls.Button Btn_Open;

 14

很简单的企业管理器---我写程序的方式,几个自定义控件。

        protected System.Web.UI.WebControls.DataList DL;

 15

很简单的企业管理器---我写程序的方式,几个自定义控件。

        #endregion

 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 &gt; 1)

 25

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

 26

很简单的企业管理器---我写程序的方式,几个自定义控件。

                    //设置分页控件的连接字符串。

 27

很简单的企业管理器---我写程序的方式,几个自定义控件。

                    string conn = GetConnString(Lst_DB.SelectedItem.Text);

 28

很简单的企业管理器---我写程序的方式,几个自定义控件。

                    Page1.PubConnString = conn ;

 29

很简单的企业管理器---我写程序的方式,几个自定义控件。

                    dal.cnString = conn;

 30

很简单的企业管理器---我写程序的方式,几个自定义控件。

                }

 31

很简单的企业管理器---我写程序的方式,几个自定义控件。

            }

 32

很简单的企业管理器---我写程序的方式,几个自定义控件。

        }

 33

很简单的企业管理器---我写程序的方式,几个自定义控件。

 34

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

        打开系统数据库,以提取数据库名称的信息#region 打开系统数据库,以提取数据库名称的信息

 35

很简单的企业管理器---我写程序的方式,几个自定义控件。

        private void Btn_Open_Click(object sender, System.EventArgs e)

 36

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

 37

很简单的企业管理器---我写程序的方式,几个自定义控件。

            dal_DB.cnString = GetConnString("master");

 38

很简单的企业管理器---我写程序的方式,几个自定义控件。

 39

很简单的企业管理器---我写程序的方式,几个自定义控件。

            //显示数据库里的表名

 40

很简单的企业管理器---我写程序的方式,几个自定义控件。

            Lst_DB.DataSource = dal_DB.RunSqlDataTable("select dbid as id,[name] as txt from sysdatabases ");

 41

很简单的企业管理器---我写程序的方式,几个自定义控件。

            Lst_DB.DataBind();

 42

很简单的企业管理器---我写程序的方式,几个自定义控件。

 43

很简单的企业管理器---我写程序的方式,几个自定义控件。

 44

很简单的企业管理器---我写程序的方式,几个自定义控件。

 45

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

        根据数据库名显示数据库里的表。#region 根据数据库名显示数据库里的表。

 46

很简单的企业管理器---我写程序的方式,几个自定义控件。

        private void Lst_DB_SelectedIndexChanged(object sender, System.EventArgs e)

 47

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

 48

很简单的企业管理器---我写程序的方式,几个自定义控件。

            //根据数据库名显示数据库里的表。

 49

很简单的企业管理器---我写程序的方式,几个自定义控件。

            dal.cnString = GetConnString(Lst_DB.SelectedItem.Text);

 50

很简单的企业管理器---我写程序的方式,几个自定义控件。

 51

很简单的企业管理器---我写程序的方式,几个自定义控件。

 52

很简单的企业管理器---我写程序的方式,几个自定义控件。

            string sql = "SELECT id, [name], xtype FROM dbo.sysobjects WHERE (xtype = 'u') AND (name &lt;&gt; N'dtproperties') order by [name]";

 53

很简单的企业管理器---我写程序的方式,几个自定义控件。

            DL.DataSource = dal.RunSqlDataTable(sql);

 54

很简单的企业管理器---我写程序的方式,几个自定义控件。

            DL.DataBind();

 55

很简单的企业管理器---我写程序的方式,几个自定义控件。

 56

很简单的企业管理器---我写程序的方式,几个自定义控件。

 57

很简单的企业管理器---我写程序的方式,几个自定义控件。

 58

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

        根据选择地表名设置分页控件#region 根据选择地表名设置分页控件

 59

很简单的企业管理器---我写程序的方式,几个自定义控件。

        private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)

 60

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

 61

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

            提取排序字段的信息#region 提取排序字段的信息

 62

很简单的企业管理器---我写程序的方式,几个自定义控件。

            //分页显示表里的数据

 63

很简单的企业管理器---我写程序的方式,几个自定义控件。

            string TableName = e.CommandArgument.ToString();

 64

很简单的企业管理器---我写程序的方式,几个自定义控件。

            //查找表里的主键

 65

很简单的企业管理器---我写程序的方式,几个自定义控件。

            string sql = "SELECT  top 1 tbl.name AS TableName, tbl.xtype AS TableType, col.name AS FieldName," 

 66

很简单的企业管理器---我写程序的方式,几个自定义控件。

                + " tt.name AS FieldType, col.length AS FieldLength"

 67

很简单的企业管理器---我写程序的方式,几个自定义控件。

                + " FROM dbo.syscolumns col INNER JOIN"

 68

很简单的企业管理器---我写程序的方式,几个自定义控件。

                + " dbo.sysobjects tbl ON col.id = tbl.id INNER JOIN"

 69

很简单的企业管理器---我写程序的方式,几个自定义控件。

                + " dbo.systypes tt ON col.xtype = tt.xtype"

 70

很简单的企业管理器---我写程序的方式,几个自定义控件。

                + " WHERE (tbl.name = '"+ TableName +"') order by col.colorder ";

 71

很简单的企业管理器---我写程序的方式,几个自定义控件。

 72

很简单的企业管理器---我写程序的方式,几个自定义控件。

            #endregion

 73

很简单的企业管理器---我写程序的方式,几个自定义控件。

 74

很简单的企业管理器---我写程序的方式,几个自定义控件。

            string[] str = dal.RunSqlStrings(sql);

 75

很简单的企业管理器---我写程序的方式,几个自定义控件。

            if (dal.ErrorMsg.Length &gt;2)

 76

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

 77

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Response.Write(dal.ErrorMsg);

 78

很简单的企业管理器---我写程序的方式,几个自定义控件。

                return ;

 79

很简单的企业管理器---我写程序的方式,几个自定义控件。

 80

很简单的企业管理器---我写程序的方式,几个自定义控件。

 81

很简单的企业管理器---我写程序的方式,几个自定义控件。

            if (str != null)

 82

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

 83

很简单的企业管理器---我写程序的方式,几个自定义控件。

                //设置分页控件

 84

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Page1.SqlTableNames = TableName;        //表名或者视图名

 85

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Page1.SqlColumns  = "*";                //显示的字段

 86

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Page1.SqlOrderColumn = str[2];            //排序字段

 87

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Page1.SqlOrderColumnKind = "string";    //排序字段的类型

 88

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Page1.SqlPageSize  = 10;                //一页的记录数

 89

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Page1.IsOrderDesc = true;                //是否倒序

 90

很简单的企业管理器---我写程序的方式,几个自定义控件。

 91

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Page1.CreateQuery() ;                    //创建SQL语句

 92

很简单的企业管理器---我写程序的方式,几个自定义控件。

                Page1.BindFirstPage();                    //绑定第一页的数据

 93

很简单的企业管理器---我写程序的方式,几个自定义控件。

 94

很简单的企业管理器---我写程序的方式,几个自定义控件。

 95

很简单的企业管理器---我写程序的方式,几个自定义控件。

 96

很简单的企业管理器---我写程序的方式,几个自定义控件。

 97

很简单的企业管理器---我写程序的方式,几个自定义控件。

 98

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

        获取连接字符串#region 获取连接字符串

 99

很简单的企业管理器---我写程序的方式,几个自定义控件。

        private string GetConnString(string DbName)

100

很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。
很简单的企业管理器---我写程序的方式,几个自定义控件。

101

很简单的企业管理器---我写程序的方式,几个自定义控件。

            //处理数据库的实例名

102

很简单的企业管理器---我写程序的方式,几个自定义控件。

            string ShiLi = "";

103

很简单的企业管理器---我写程序的方式,几个自定义控件。

            if (this.Txt_SL .TextTrimNone.Length ==0)

104

很简单的企业管理器---我写程序的方式,几个自定义控件。

                ShiLi = ".";

105

很简单的企业管理器---我写程序的方式,几个自定义控件。

            else

106

很简单的企业管理器---我写程序的方式,几个自定义控件。

                ShiLi = ".\\" + this.Txt_SL.TextTrimNone;

107

很简单的企业管理器---我写程序的方式,几个自定义控件。

108

很简单的企业管理器---我写程序的方式,几个自定义控件。

            //修改连接字符串

109

很简单的企业管理器---我写程序的方式,几个自定义控件。

            return "data source="+ ShiLi +";initial catalog="+ DbName +";persist security info=False;user id="+ this.Txt_SA.TextTrimNone +";pwd="+ this.Txt_PWD.TextTrimNone  +";";

110

很简单的企业管理器---我写程序的方式,几个自定义控件。

111

很简单的企业管理器---我写程序的方式,几个自定义控件。

112

很简单的企业管理器---我写程序的方式,几个自定义控件。