zoukankan      html  css  js  c++  java
  • Step By Step 一步一步写网站[1] —— 填加数据

    填加数据是一个项目必不可少的部分,也是一个基础操作,使用也是最频繁的。
    那么您是怎么实现添加数据的呢?

    添加数据可以分为几种情况。
    1、单表添加,不需要事务。最简单最常见
    2、多表(主从表)添加,不需要事务。
    3、多表(主从表)添加,需要事务。
    4、其他。

    今天先来说一下简单的,单表添加的情况。为了更形象一点,我们先来假设一个环境。

    要求:信息发布系统,添加一条信息。
    表名:T_News
    字段:NewsID,标题,作者,内容,发布时间等。

    先来说一下我常用的方法,然后在猜想一下OOD的方法,最后猜想一下三层的方法。
    接下来是当需求发生变化如何应对、添加功能了怎么办、更换数据库又怎么处理。

    在这些情况下三种方式的对程序的修改成都的对比。

    最后最后是 抽象。毕竟一个系统不是只有一个填加数据的地方,假设有一百的,那么怎么处理更好呢?

    >>想好了的,思维却乱了,当初好好学习就好了。

    >>好了,继续。

    (假设数据库已经设计好了,文档、设计都做好了。)

     第一步:写.aspx页面。在页面上绘制文本框、下拉列表框、复选框等控件,用来接收用户输入的信息。

    在写点js脚本的验证了这类的代码。

    代码略

    分析:这一步基本没有什么异议。aspx的变动对下面的影响基本不大。

    第二步:写.aspx.cs文件。

    1、定义一个数组(string[] str1),目的是存放字段名称,要添加哪些字段就定义多少数组元数(下标)。

    2、把字段放在数组里面。

    3、在定义一个数组(string[] str),目的是存放字段对应的数据。要和上面的数组内容一一对应

    4、赋值,从控件里面取值放在str 里面。

    5、必要的验证。比如标题不能为空,标题不能重复等。

    6、调用“我的数据访问层”里的一个方法添加数据。

    7、根据返回信息判断是否发生异常,并作相应的处理。

    8、结束。

    说明:可以使用组合SQL语句(就是insert into )的方法,也可以使用存储过程的方法。两个方法区别不大。

    代码:SQL

    public void add()
            
    {
                
    //添加数据
                string[] str1 = new string[3];
                
    //NewsID(自增1),标题,作者,内容,发布时间(字段的默认值(GetDate()))
            
                
    定义字段

                
    string[] str = new string[3];
        
                
    获取数据

                
    验证数据
                
                
    //实例化
                JYK.DataAccessLayer dal = new JYK.DataAccessLayer();
                
    //添加数据,获取新添加的数据的NewsID字段的值
                string NewID = dal.InsertDataStr("T_News",str1,str);
                

                
    检查是否出现异常

                dal.Dispose();
            }

     代码:存储过程

    public void add()
            
    {
                
    //添加数据
                
    //NewsID(自增1),标题,作者,内容,发布时间(字段的默认值(GetDate()))
                
                
    string[] str = new string[3];
                
    获取数据


                
    验证数据
                
                JYK.DataAccessLayer dal 
    = new JYK.DataAccessLayer();
        
                
    添加存储过程的参数

                
    //执行存储过程
                dal.RunStore("Proc_News_AddData");    
            
                
    检查是否出现异常
                
                dal.Dispose();
            }

    两段代码基本相同,只是个别的地方有一点不同。

    第三步:数据访问层

    应该写点代码吧,但是这里我直接使用SQLHelp这类的Help工具直接代替数据访问层。所以呢这里就不需要在写代码了。

    这里使用的是我自己写的Help,我把他叫做“我的数据访问层”。

    小结:

     优点:

    1、只涉及.aspx和.aspx.cs两个文件。.aspx.cs里面没有需要重用的代码,所以没有提出来放在.cs文件。这样也就不需要数据传递了,省了一个实体类。

    2、数据访问层使用通用的方式,无需再编写代码。

    3、所需要的代码少。我觉得代码少是便于维护的一个基础。

    4、没有出现SQL语句,也没有出现 SqlClient 里面的对象,也就是说更换数据库的话,不需要修改这些代码。

    缺点:

    看起来不符合“标准”,一开始会用着不习惯。没有采用强类型,好像也不是弱类型。没有OO的感觉,有点乱。

     我的数据访问层的源码

    先写到这里,下一篇写猜想的OOD的方法。因为我还不会OO所以只好猜想了。

  • 相关阅读:
    Kubernetes Admission Controller解析
    容器化Node Exporter对主机磁盘使用率的监控问题
    Prometheus监控指标的label注入方法
    Prometheus告警模型分析
    Kubernetes Controller执行框架解析
    深入理解Istio核心组件之Pilot
    Prometheus存储模型分析
    如何利用Prometheus监控你的应用
    Prometheus在Kubernetes下的服务发现机制
    JSON字符串和js对象转换
  • 原文地址:https://www.cnblogs.com/jyk/p/685075.html
Copyright © 2011-2022 走看看