用户注册,报修

一、需求分析

(1)还没有注册的客户,可以进入注册界面进行注册。

(2)新建一个报修表,名字为repair_info0,列有用户名、报修类型、报修地点、报修内容,报修日期和时间、用户报修次数。

(3)在报修界面中,当用户点击“报修”按钮时,软件会把用户报修的信息写入数据库中,还可以更新报修次数,同时会清空相应的文本框。


二、具体设计思路

(1)首先建一个报修表,然后在窗体上摆些所需的控件。

(2)我们需要做的有查询、插入、修改。当点击查询的时候,数据会从数据库里读取到相应的控件里,然后我们可以对报修次数进行更改;我们在相应的控件里填写信息,点击报修会把数据插入到数据库里,同时清空了相应的文本框。

(3)我们感觉如果插入日期用填写的方法没有多大意义,还容易出错,于是我们用NumericUpDown控件来获取当日的日期。获取的日期用Label显示,然后插入数据库里,为了不影响界面美观,我们把NumericUpDown控件隐藏起来。

(4)查询、插入、修改都要连接数据库,这样连接数据库的代码要重写多次,所以我们把查询、插入、修改的代码写在一个类里。

三、代码实现

封装代码

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Data;namespace zhuce
{class Class1{public string strCon = "data source=.;initial catalog=H:\\DATA\\REPAIR.MDF;integrated security=true";public SqlConnection sqlCon = new SqlConnection();public SqlDataReader sdr;public DataTable dt = new DataTable();public SqlDataAdapter sda = new SqlDataAdapter();public DataSet ds = new DataSet();public void dbcon(){try{sqlCon = new SqlConnection(strCon);}catch (Exception e){MessageBox.Show("数据库连接不成功:" + e.ToString());}}public void dbFill(string selstr){dt.Clear();sda = new SqlDataAdapter(selstr, strCon);sda.Fill(ds, "repair_info0");dt = ds.Tables["repair_info0"];}public void dbSelect(string showInfo){sqlCon.Open();SqlCommand sqlcmd = new SqlCommand(showInfo, sqlCon);sdr = sqlcmd.ExecuteReader();}public void dbInsert(string insertInfo){sqlCon.Open();SqlCommand sqlcmd = new SqlCommand(insertInfo, sqlCon);try{sqlcmd.ExecuteNonQuery();MessageBox.Show("报修成功!");}catch (Exception e){MessageBox.Show("报修失败" + e.ToString());}sqlCon.Close();}public void dbInsert1(string insertInfo){sqlCon.Open();SqlCommand sqlcmd = new SqlCommand(insertInfo, sqlCon);try{sqlcmd.ExecuteNonQuery();MessageBox.Show("注册成功!");}catch (Exception e){MessageBox.Show("注册失败" + e.ToString());}sqlCon.Close();}public void dbUpdate(string updStr){sqlCon.Open();SqlCommand sqlcmd = new SqlCommand(updStr, sqlCon);try{sqlcmd.ExecuteNonQuery();MessageBox.Show("更新成功!");}catch (Exception e){MessageBox.Show("更新失败" + e.ToString());}sqlCon.Close();}}}

 

 

 

注册代码

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;namespace zhuce
{public partial class Zhuce : Form{public Zhuce(){InitializeComponent();}Class1 cl = new Class1();private void zc_Click(object sender, EventArgs e){cl.dbcon();string sql = "insert into user_info(userName,passWord) values('" + textBox1.Text +"','" + textBox2.Text + "')";cl.dbInsert1(sql); baoxiu b = new baoxiu();b.Show();}}}

 

 

 

报修代码

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;namespace zhuce
{public partial class baoxiu : Form{public baoxiu(){InitializeComponent();}string selStr = "select * from repair_info0";Class1 cl = new Class1();private void bx_Click(object sender, EventArgs e){year.Value = Convert.ToDecimal(DateTime.Now.Year);month.Value = Convert.ToDecimal(DateTime.Now.Month);day.Value = Convert.ToDecimal(DateTime.Now.Day);cl.dbcon();string insrtInfo = "insert into repair_info0(userName,bxplace,bxtype,bxcontent,bxdate,bxtime) values('" + comboBox2.Text + "','" + textBox1.Text +"','" + comboBox1.Text + "','" + richTextBox1.Text + "','" + label1.Text + "','" + textBox3.Text + "')";cl.dbInsert(insrtInfo);textBox1.Text = "";comboBox2.Text = "";textBox3.Text = "";comboBox1.Text = "";richTextBox1.Text = "";}private void year_ValueChanged(object sender, EventArgs e){label1.Text = year.Value + "-" + month.Value + "-" + day.Value;}private void month_ValueChanged(object sender, EventArgs e){label1.Text = year.Value + "-" + month.Value + "-" + day.Value;}private void day_ValueChanged(object sender, EventArgs e){label1.Text = year.Value + "-" + month.Value + "-" + day.Value;}private void chaxun_Click(object sender, EventArgs e){cl.dbcon();cl.dbFill(selStr);comboBox2.ValueMember = "userName";comboBox2.DataSource = cl.dt.DefaultView;}private void button1_Click(object sender, EventArgs e){cl.dbcon();string strUpd = "update repair_info0 set bxtime='" + textBox3.Text + "' where userName='" + comboBox2.Text + "' ";cl.dbUpdate(strUpd);textBox1.Text = "";comboBox2.Text = "";textBox3.Text = "";comboBox1.Text = "";richTextBox1.Text = "";}private void comboBox2_SelectedIndexChanged(object sender, EventArgs e){string selStr = "select * from repair_info0 where userName='" + comboBox2.Text + "'";cl.dbcon();cl.dbSelect(selStr);if (cl.sdr.Read()){comboBox2.Text = cl.sdr["userName"].ToString();textBox1.Text = cl.sdr["bxplace"].ToString();comboBox1.Text = cl.sdr["bxtype"].ToString();richTextBox1.Text = cl.sdr["bxcontent"].ToString();textBox3.Text = cl.sdr["bxtime"].ToString();label1.Text = cl.sdr["bxdate"].ToString();}}}
}

 

四、测试

五、PSP耗时分析

 

PSP2.1Personal Software Process StagesTime(h)
Planning计划10
  • Estimate估计这个任务需要多长时间10
Development开发7
  • Analysis需求分析1
  • Design Spec生成设计文档1
  • Coding Standard代码规范2
  • Design具体设计1
  • Coding具体代码1
  • Code Review代码复审0.5
  • Text测试0.5
Reporting报告3
  • Test Report测试报告1
  • Size Measurement计算工作量

1

  • Postmortem事后总结

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

六、团队分工

 这次团队作业是我们一个宿舍的七个人,有付媛媛、徐玉莹、王远离、卫文静、梁秋萍、胡田鸽、龚园苑。

    具体分工如下:

        团队负责人:付媛媛

      创建数据库:徐玉莹

      连接数据库:王远离

      外观设计人员:龚园苑

      写代码人员:徐玉莹、付媛媛

      测试人员:梁秋萍

      写文档人员:胡田鸽

       团队人员得分情况如下:

      付媛媛:3分

      徐玉莹:2分

      卫文静:1分

      王远离:1分

      梁秋萍:1分 

      胡田鸽:1分

      龚园苑:1分

七、总结

     这次增量作业比上次难一点,涉及的范围比较广,但我们是打不死的小强,再难也要坚持。当然这种题对我们班的学霸来说是小菜一碟,对我们来说就是学习的过程。其实我们这次完成的还有缺陷。比如更新报修次数,并没有达到我们预想的结果。我们在相应的文本框里填写用户报修信息后,当点击报修的时候,就自动在数据库里bxtime(报修次数)列添加1次报修次数,当我们再读取到这一用户时,再点击报修,就自动更改了数据库里报修次数列为2;而不是我们手动来更改报修次数。不知道老师这次增量的要求是不是表达这个意思。

     我们想实现这种结果,但是代码写了又改,总是出错,于是就添加了一个更新按钮来手动更新报修次数。

 

     纸上得来终觉浅,绝知此事要躬行!当我们看到书上写的一些程序时,总觉得实现的功能太过于简单,而且那些都是别人的知识,纸上谈兵终究不行,但当我自己亲自写一些程序时,才发现即使想实现一个很小的功能也是不易的,但只要每一次都能实现小小的功能就算是有了很大的收获。

 

     想要实现一个完美的程序,需要很好的基础功底和思考能力,我们就特别缺少基础知识,希望老师每次布置的作业能让我们巩固基础知识,提高思考能力。

     

 

转载于:https://www.cnblogs.com/twinkle-0908/p/5043664.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java SE 8新功能介绍:使用Streams API处理集合

使用Java SE 8 Streams的代码更干净,易读且功能强大..... 在“ Java SE 8新功能介绍”系列的这篇文章中,我们将深入解释和探索代码,以了解如何使用流遍历集合,从集合和数组创建流,聚合流值。 在上一篇文章“ Lambda的…

在HTML中使用css3实现雪人动画效果

背景:圣诞节又到了,拿什么来哄女朋友开心? 项目结构: html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xht…

mysql 释放内存_mysql查询后释放内存

我正在使用CodeIgniter从远程服务器导入大表.我一次将查询分成1000行.这将是一个在后台运行的cron脚本.$userDB是本地数据库对象,而$remoteDB是远程数据库对象private function fetch_remote_db_table($remoteDB, $remoteTable, $localTable FALSE){$success FALSE;$returnOb…

linux线程池简单实例

linux线程池简单实例转载于:https://www.cnblogs.com/adong7639/p/5044685.html

圣诞节又到了,作为程序猿的我用代码给女朋友送了一个礼物

圣诞节又到了&#xff0c;拿什么来哄女朋友开心&#xff1f;我们先来做一个简单的雪人动画&#xff1a;项目结构&#xff1a;html:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.d…

【Linux】权限篇(二)

权限目录 1. 前言2. 权限2.1 修改权限2.2 有无权限的对比2.3 另外一个修改权限的方法2.3.1 更改用户角色2.3.2 修改文件权限属性 3. 第一个属性列4. 目录权限5. 默认权限 1. 前言 在之前的一篇博客中分享了关于权限的一些知识&#xff0c;这次紧接上次的进行&#xff0c;有需要…

mysql 替代like_mysql用instr替代like查询

使用内部函数INSTR&#xff0c;代替传统的LIKE方式查询&#xff0c;不仅速度更快&#xff0c;而且省去了通配符检查&#xff0c;因此更加安全。INSTR()函数返回字符串中子字符串第一次出现的位置。如果在str中找不到子字符串&#xff0c;则INSTR()函数返回零(0)。下面说明了INS…

项目实战:小米商城官网及秒杀高仿(html+css+js)

导读:秒杀的检索结果,小米官方网站包含秒杀价格及秒杀适配机型,官方推荐秒杀产品,帮助米粉挑选合适自己的秒杀商品。 仿小米手机商城的全套页面。包含首页,订单页,列表页,商品详情页,个人中心,购物车,等等几十个页面。 有轮播的实现,demo 基于html css 实现小米官网部分内容搭…

Unity3d 配置OpenCV(EmguCV) 周围环境

最近毕业。我们一直在研究如何Unity正在使用EmguCV&#xff0c;最后&#xff0c;有些吃老本的今天。 我的环境&#xff1a;Unity3d 4.3.1f libemgucv-windows-universal-gpu-2.4.9.1847 原文參考&#xff1a;http://forum.unity3d.com/threads/182600-OpenCV-(EMGUC…

Java 8的方法参考进一步限制了重载

方法重载一直是一个充满喜忧参半的话题。 我们已经在博客上介绍了它&#xff0c;并介绍了几次警告&#xff1a; 您会后悔对Lambdas应用重载&#xff01; 保持干燥&#xff1a;方法重载 为什么每个人都讨厌操作员超载 API设计师&#xff0c;请小心 重载有用的主要原因有两个…

多态性(C#)

在面向对象编程中继承性和多态性是重要机制&#xff0c;前面我为大家分享了我对“类的继承”的理解&#xff0c;哪么今天我就跟大家分享下我对“多态性(C#)”的理解。 首先我们先来看看多态的定义&#xff0c;同一操作作用于不同的对象&#xff0c;可以有不同的解释&#xff0c…

孙叫兽重磅推荐Chrome插件——CSDN浏览器助手

导读:解决你在浏览器上遇到的各种问题,无论你是学生小白、还是职场老鸟,都可以借助这个插件,打造个性化浏览器,提升工作学习效率。 此插件经过多轮迭代,体积小,内存占用少,便于开发者快速安装和使用。 官方地址:https://plugin.csdn.net/ 目录 安装方法:

mysql concat 引号_在MySQL concat里面使用多个单引号,三引号的问题

在动态拼接字符串时&#xff0c;我们常会用到字符拼接&#xff0c;我对拼接的引号不理解&#xff0c;如&#xff1a;1、 id 为什么是3个引号&#xff0c;为什么左边一个加号右边一个加号(能不能着重帮我解释下这个&#xff0c;详细点)SQL codesum(case Leave when id then D…

【APICloud系列|21】使用APICloud敏捷式开发总结,回顾开发一个完整APP过程。

导读:APICloud是柚子(北京)科技有限公司创建的低代码开发平台,总部位于北京, 通过生产力工具与混合开发技术,为企业与开发者构建高效的IT环境;在APICloud平台已有80万注册用户,平台每日生成安装包超6000个。业务团队延伸至上海、深圳、重庆、青岛等10余个城市。 APICloud是…

mysql 存储过程 记录是否存在_如何检查MySQL中是否存在存储过程?

让我们首先创建一个存储过程-mysql> DELIMITER //mysql> CREATE PROCEDURE ExtenddatesWithMonthdemo(IN date1 datetime, IN NumberOfMonth int )-> BEGIN-> SELECT DATE_ADD(date1,INTERVAL NumberOfMonth MONTH) AS ExtendDate;-> END;-> //mysql> DEL…

[ExtJS5学习笔记]第三十五条 sencha extjs 5 组件查询方法

一UI前部组件势必更加&#xff0c;我们通常习惯性使用ID获取部件操作的需要。但是&#xff0c;这种方法是extjs推荐么&#xff1f;你有吗extjs利用它来获取组件的推荐方法&#xff1f; 夹 文件夹extjs的查询组件的API查询实例主要的组件查询组件树查询通过组件的属性检索属性匹…

数据湖 多维数据集_按汇总分组/多维数据集

数据湖 多维数据集时不时地&#xff0c;您会遇到一个使您达到SQL限制的要求。 我们中的许多人可能会早早放弃并使用Java / [或您的语言]计算内容。 相反&#xff0c;使用SQL可能是如此简单快捷。 如果您使用的是高级数据库&#xff0c;例如DB2 &#xff0c; Oracle &#xff0c…

【APICloud系列|22】 videoPlayer模块(视频播放)的实现

导读:videoPlayer 封装了视频播放功能(不支持音频播放)。可快进、快退设置播放位置等操作,亦可设置屏幕亮度和系统声音大小。通过监听接口可获取模块上的各种手势操作事件。 模块详情:http://www.apicloud.com/mod_detail/35792 index.html <html><head>&l…

mysql数据库突然连不上了_mysql数据库突然连接不上去

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

FlexyPool如何同时支持连接代理和装饰器

代理人 FlexyPool监视连接池使用情况&#xff0c;因此需要拦截连接关闭方法调用。 为了简单起见&#xff0c;第一个版本为此目的依赖动态代理&#xff1a; private static class ConnectionInvocationHandler implements InvocationHandler {public static final String CLOS…