一 前言:
这次的团队作业是在上一次基础上增加了一些内容,由于增加的内容不是很多,所以我们就按照上一次分工方式各自去完成自己的任务,任务开始之前我们在一起详细的讨论了一下具体实施方案,然而每个人都会有不同的见解,大约我们争执了有半小时吧,才制定出每个队员都同意的方案。方案制定好之后,工作就开始了……
二 .第一步我们首先要做的是编写代码,和数据库。
界面如下:
首界面
登陆成功页面功能介绍:用户名或密码为空时会弹出一个提示框,登陆成功后会转到保修窗体。
注册页面功能介绍:当用户名密码为空时和用户名存在时会有一个提示框。
注册成功后,登陆到系统上面,可以进行相关的报修
单击报修按钮,成功报修,相关数据进入数据库里面
三 代码
1 主页面代码
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; namespace 综合项目_10._10 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string selstr = @"select userName,leixing,neirong,didian,riqi,cishu from repair_info"; DBCon db = new DBCon(); private void zengjia_Click(object sender, EventArgs e) //报修按钮的单击事件 { if (comboBox1.Text == "" || stname.Text == "" || stasex.Text == "" || staddress.Text == "" || stage.Text == "" || cishu.Text == "") { MessageBox.Show("报修失败!!"); } else { db.dbcon(); string insr = "insert into repair_info(leixing,userName,neirong,riqi,didian,cishu) values('" + comboBox1.Text + "','" + stname.Text + "','" + stasex.Text + "','" + staddress.Text + "','" + stage.Text + "','" + cishu.Text + "')"; db.dbInsert(insr); db.dbFill(selstr); dataGridView1.DataSource = db.dt; } } private void gengxin_Click(object sender, EventArgs e) //更新的单击事件 { db.dbcon(); db.dbGridViewUpd(); } private void guanbi_Click(object sender, EventArgs e) //关闭的单击事件 { Application.Exit(); } } }
2 登陆注册的页面代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Data; namespace 综合项目_10._10 { public partial class Form3 : Form { public Form3() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string strConn = "Data Source=.;Initial Catalog=repair;Integrated Security=True"; SqlConnection conn = new SqlConnection(strConn); conn.Open(); string str = @"select userName from user_info where userName='" + textBox1.Text + "'"; SqlCommand cmd = new SqlCommand(str, conn); SqlDataReader reader= cmd.ExecuteReader(); if(reader.Read()) { MessageBox.Show("用户名已存在!!"); } else { string strC = "Data Source=.;Initial Catalog=repair;Integrated Security=True"; SqlConnection con = new SqlConnection(strC); con.Open(); SqlCommand cm = new SqlCommand("insert into " + "user_info(userName,passWord)" + " values(@userName,@passWord)", con); cm.Parameters.Add("@userName", SqlDbType.VarChar).Value = textBox1.Text.Trim(); cm.Parameters.Add("@passWord", SqlDbType.VarChar).Value = textBox2.Text.Trim(); if (textBox1.Text == "" || textBox2.Text == "") { MessageBox.Show("用户名和密码不能为空"); } else { MessageBox.Show("注册成功"); this.Close(); } cm.ExecuteNonQuery(); con.Close(); } } private void button2_Click(object sender, EventArgs e) { this.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 综合项目_10._10 { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button3_Click(object sender, EventArgs e) //注册按钮的单击事件 { Form3 frm = new Form3(); frm.ShowDialog(); } private void button1_Click(object sender, EventArgs e) //登陆按钮的单击事件 { string strConn = "Data Source=.;Initial Catalog=repair;Integrated Security=True"; //连接数据库 SqlConnection Connection = new SqlConnection(strConn); try { string sqlStr = "select userName,passWord from user_info where userName=@user"; //查询 DataSet ds = new DataSet(); Connection.ConnectionString = Connection.ConnectionString; Connection.Open(); SqlCommand cmd = new SqlCommand(sqlStr, Connection); cmd.Parameters.Add(new SqlParameter("@user", SqlDbType.VarChar, 30)); //传参 cmd.Parameters["@user"].Value = user.Text; //给user文本框赋值 SqlDataReader dater = cmd.ExecuteReader(); if (user.Text.Trim() == "") //如果user的值等于空 { MessageBox.Show("用户名不允许为空!"); } else if (pwd.Text.Trim() == "") //同上 { MessageBox.Show("密码不能为空!"); } else if (!dater.Read()) //如果输入的用户名没有被dater读到,则用户名不存在 { MessageBox.Show("用户名不存在!"); Message.Text = ""; PwdMessage.Text = ""; user.Text = ""; } else if (dater["passWord"].ToString().Trim() == pwd.Text.Trim()) //输入密码等于数据库密码登录成功弹出主体页面 { Message.Text = "恭喜你!登录成功!"; UserMessage.Text = ""; PwdMessage.Text = ""; Form1 frm = new Form1(); frm.ShowDialog(); } else { MessageBox.Show("密码错误"); //否则密码错误 UserMessage.Text = ""; Message.Text = ""; pwd.Text = ""; } } catch (Exception) { throw; //抛出异常 } finally { Connection.Close(); //关闭数据库 } } } }
3 数据库代码的部分封装
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; using System.Windows.Forms; namespace 综合项目_10._10 { class DBCon { public string strCon = @"Data Source=.; Initial Catalog=repair; Integrated Security=True;"; public SqlConnection sqlCon = new SqlConnection(); public SqlDataAdapter sda = new SqlDataAdapter(); public DataSet ds = new DataSet(); public DataTable dt = new DataTable(); public SqlDataReader sdr; 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_info"); dt = ds.Tables["repair_info"]; } 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(); } catch (Exception e) { MessageBox.Show("数据插入失败"+e.ToString()); } sqlCon.Close(); } public void dbGridViewUpd() //数据集的更新与数据库关联的方法 { SqlCommandBuilder scb = new SqlCommandBuilder(sda); DialogResult result; result = MessageBox.Show("确保保存修改过的数据吗?","操作提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question); if (result == DialogResult.OK) { dt = ds.Tables["repair_info"]; sda.Update(dt); dt.AcceptChanges(); } } 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(); } } }
四 测试
五 团队成员任务
六 总结
这是我们第三次进行团队项目,然而每次团队合作都有不同的感受,使我们更加认识到团队的力量和魅力,这次合作通过我们每位成员的不懈努力,终于把这个项目做得更加完美,而且都充分发挥了我们各自的优势,也使我们在接下来更有信心做好每一次作业。
每一次成功的背后都有不为人知的辛酸故事,我们团队在开发过程中也遇到了许多问题,但是通过我们不断地探索和努力,一步一步地消灭掉,这也更增强了我们的自信心,每一次新的作业都是一次新的挑战,也使我们更加的团结,更有凝聚力
下面是我们遇到的一些问题:
一:项目整体的运行效果与成员意见的分歧
二: 项目的分配问题,每个人都有各自的优势
三:纠结数据库的插入,修改,等问题的解决
四:软件测试知识缺乏,接触软件测试的知识较少
五:专业技术的不足,没有更深层的专业知识
...........
但是,这些困难经过我们的团结协作,把其中的几乎都攻克了。现在我切身的体会到,软件开发人员在项目中所付出的努力不是每个人所能体会到的,任何一款软件成功发布的背后,必定都有无数个困难和困惑所构成,然而在背后都有一个坚忍且强大的团队通过不断的努力和无数的试验最终把项目做得更加的完美!使项目更加的人性化,更符合人们的习惯,用起来更加的方便,功能更加的强大
接下来,我们就对这个软件团队做一个小总结:
一:任何一个团队里面都存在意见分歧,我们做的就是统一商议,拿出最好的解决方案,合理的解决问题,使分歧更小化,
二:团队每个成员的知识有所不同,要把团队结构最优化,充分发挥每个人的优势,使每个人发挥自己的长处,并且相互协作,相互监督,共同完成本次任务
三:团队成员之间一定要培养高度契合度,并且增强时间观念和执行力,这样,才能保证一个软件保质保量保时完成。
四:这样的团队任务很有实际意义,可以增加同学之间的相互交流与团队协作能力。使我们更加的团结,更加的有上进心,更强了我们的学习积极性和对这专业的热情,更加充分认识到团结的强大。我们会更加的努力,使团队更加的超越,
五:这个团队是我们每个人在学习的一部分,增强了我们每个人的学习信心,而且融入了我们的生活,增强了每个人的交流和表达能了,更加的锻炼了我们的学习能力,一举两得,
........
以上就是我们对这个软件团队项目所作出的总结,希望老师阅读后,批评指正,谢谢老师!