zoukankan      html  css  js  c++  java
  • 排球计分程序重构

    需求:作为一名现场记分员,我希望详细记录比赛现场比分增长情况,以便观众及运动员、教练员及时掌握比赛状况。(满意条件:每一次比分的改变,都要形成一条记录)。

    计划:估计此次工作需要两周的时间。

    需求分析:每次计分的时候都会产生一条记录,并且有详细的比分情况,此次新加了一个精确到得分选手,需要对数据库新加表,并建立外键。而且之前的数据结构需要变化一下。

    类图

    流程图

    程序截图:

    代码:

    UI层
    volleyBll bll = new volleyBll();
            private void xiangxibifen_Load(object sender, EventArgs e)
            {
                dataGridView1.DataSource= bll.selectxiangxidefen();
                DataTable dt = bll.selectxiangxidefen();
                for (int i = 0; i <dt.Rows.Count;i++) 
                {    int j=0;
                     
                    if (dt.Rows[i][2] == DBNull.Value)
                    { continue;  }
                    else
                    {
                         j= Convert.ToInt32(dt.Rows[i][2]);
                    }
                    
                   
                   dataGridView1.Rows[i].Cells[0].Value = bll.selecxuanshou(j, 1);
                  
                }
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    int k = 0;
                    if (dt.Rows[i][4] == DBNull.Value)
                    { continue; }
                    else
                    {
                        k = Convert.ToInt32(dt.Rows[i][4]);
                    }
                    dataGridView1.Rows[i].Cells[1].Value = bll.selecxuanshou(k, 7);
                }
            }
    BLL
      public DataTable selectxiangxidefen()
            {
                return dal.Selectxiangxidefen();
            }
            public string selecxuanshou(int serialnum, int team)
            {
                return dal.selecxuanshou(serialnum,team);
            }
    Dal
     public DataTable Selectxiangxidefen()
            {
                string sql = "select * from score";
                DataTable dt = SqlHelper.ExecuteDataTable(sql);
                return dt;
            }
            public string selecxuanshou(int serialnum, int team)
            {
                string duiyuan = "";
                string sql = "select  name ,dute from team where serialnum=@serialnum and teamnum=@team ";
                SqlParameter[] pms ={
                     new SqlParameter("@serialnum",serialnum),
               new SqlParameter("@team",team)
               
               };
                SqlDataReader reader = SqlHelper.ExecuteReader(sql, pms);
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        duiyuan = reader[0].ToString() + reader[1].ToString();
    
                    }
                   
                }
                return duiyuan;
            }

    代码复审正在进行,此次还是有些地方比如业务逻辑层并没有处理好,可以通过传参数的方法。但是遇到一个问题,数据库的表的外键不知道怎么去创建,所以部分地方不太完美,表没有真正的连接起来。

  • 相关阅读:
    【基础】Oracle 表空间和数据文件
    oracle学习笔记1:windows下oracle数据库安装及.net调用oracle数据库
    redis中文网站
    .NET中的消息队列
    .Net下的进程间的通讯 -- Windows消息队列
    1060 最复杂的数(反素数玄学dfs)
    1282 时钟(最小表示法+hash)
    1191 消灭兔子(贪心+优先队列)
    1366 贫富差距(floyed)
    1503 猪和回文(DP)
  • 原文地址:https://www.cnblogs.com/colorful-Ji/p/6569207.html
Copyright © 2011-2022 走看看