【CRM项目03】专业和岗位管理
来源:互联网 发布:彼得雷乌斯 知乎 编辑:程序博客网 时间:2024/04/29 19:44
这个项目这前面做省份管理,校区管理,岗位管理,专业岗位等,全部都是增删改查
把省份管理做完了,后面的几乎都可以复制粘贴前面的代码了,改一下绑定字段即可。
也没啥新意的,做着做着就失去了动力,如果以后工作都是增删改查,那就太可怕,没劲。
在做专业管理和岗位管理时,两个表很明显是多对多的关系,但设计数据库的人,似乎忘了给关系表
拆分关系。增加一个表。使之符合范式。通常情况是这么处理,但自己不想再建表了。
比如做学生选课系统。多个学生选多门课。这是多对多关系。
这样可以写成三个表。
分别为。学生表(学号,姓名)
课程表(课程号,课程名)
选课表(学号,课程号)
通过选课表,将学生和课程联系起来了。
想法比较大胆,思想比较歪。
任何一个整数都可以转化成一个二进制数,
如0==》0000,1==》0001,2==》0010,3==》0011,4==》0100,5==》1001
而0,1就能代表关联表中有哪些对应的字段
数据设计是这样的:
--4,岗位表create table Station(StationID int primary key , --岗位IDStationName varchar(50) not null, --岗位名称Remarks varchar(50), --岗位被准)insert into Station values(1,'软件测试','软测');insert into Station values(2,'软件开发','开发');insert into Station values(4,'php','最好的语言');insert into Station values(8,'.net开发','aa');insert into Station values(16,'Android开发','bb');insert into Station values(32,'java开发','cc');insert into Station values(64,'javaScript','cc');select * from Station where StationName like'%%' order by StationID descgo--5,专业表create table Major(proID int primary key identity(1,1),--专业IDproName varchar(50) not null,--专业名称SchoolID int not null references School(SchoolID),--校区ID(外键)StationS int,--和岗位关系Remarks varchar(50),--岗位备注)insert into Major values('软件测试',1,0,'测试')insert into Major values('软件工程',1,3,'');insert into Major values('软件测试',1,11,'');insert into Major values('网络工程',1,4,'');insert into Major values('图形图像',2,38,'');insert into Major values('软件测试',3,21,'');insert into Major values('网络工程',3,7,'');insert into Major values('图形图像',3,38,'');
岗位表的编号采用2的n次幂,专业表中的StationS用一个数字可以代表岗位表中关联的岗位
如岗位表中的80,可以推算出岗位表中有64+16这两个岗位组成的
大概关系就是那样的,主要是每次把数组转换成”外键关系“,需要进行计算,然后做增删改查也比较麻烦
岗位的查询,添加,取消
/// <summary> /// 绑定专业对应的岗位信息 /// </summary> /// <param name="majorID"></param> private void GetHideMajorInfo(string majorID) { Model.majorModel model = new Model.majorModel(); model.PproName = ""; model.PproID = int.Parse(majorID); DataTable dt = bll.MajorAndSchool(model); this.txtMajorName.Text=dt.Rows[0]["proName"].ToString(); this.txtSchool.Text=dt.Rows[0]["SchoolName"].ToString(); int GGNumber=int.Parse(dt.Rows[0]["StationS"].ToString()); DataTable gws = bll.selectStation(); this.DDLStationMy.Items.Clear(); foreach (DataRow row in gws.Rows) { int p = int.Parse(row["StationID"].ToString()); if(p<= GGNumber) { GGNumber -= p; string key = row["StationName"].ToString(); string value = row["StationID"].ToString(); this.DDLStationMy.Items.Add(new ListItem(key, value)); if (GGNumber == 0) break; } } } /// <summary> /// 绑定所有岗位信息 /// </summary> private void GetBindDDLStation() { this.DDLStationAll.DataSource = bll.selectStation(); this.DDLStationAll.DataTextField = "StationName"; this.DDLStationAll.DataValueField = "StationID"; this.DDLStationAll.DataBind(); } /// <summary> /// 添加岗位 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnAdd_Click(object sender, EventArgs e) { string MajorID = Request.QueryString["MajorID"]; int number =int.Parse(this.DDLStationAll.SelectedValue); foreach ( ListItem ll in DDLStationMy.Items) { if(ll.Value== number.ToString()) { ClientScript.RegisterStartupScript(GetType(), "UserMain", "alert('该专业已经存在!')", true); return; } } bll.AddStationbyNumber('+', number,int.Parse(MajorID)); GetHideMajorInfo(MajorID); } /// <summary> /// 取消岗位 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUpa_Click(object sender, EventArgs e) { string MajorID = Request.QueryString["MajorID"]; int number = int.Parse(this.DDLStationMy.SelectedValue); bll.AddStationbyNumber('-', number, int.Parse(MajorID)); GetHideMajorInfo(MajorID); }
设置添加新岗位的ID编号
BLL.StationBLL bll = new BLL.StationBLL(); /// <summary> /// 设置新加的岗位ID /// </summary> private void GetTxtStationID() { DataTable dt = bll.SelectStationID();//查询Station表中所有的ID for (int newId = 1; newId < Math.Pow(2,31); newId *= 2) { bool falg = true;//新创建的id能否使用 foreach (DataRow row in dt.Rows) { int id = int.Parse(row["StationID"].ToString());//数据库中的id if(id== newId)//新创建的id数据库中已经存在 { falg = false;//新创建的id不能用 break;//跳出循环,在创建一个newID } } if (falg)//新创建的id可以用,找到了,赋值,跳出循环 { this.txtStationID.Text = newId.ToString(); break; } } }
修改专业的岗位SQL语句:
/// <summary> /// 修改专业的岗位信息 /// </summary> /// <param name="addNumber"></param> /// <param name="majorId"></param> /// <returns></returns> public bool AddStationbyNumber(char fuhao, int Number,int majorId) { string sql = string.Format("update Major set StationS{0}={1} where proID={2}", fuhao, Number, majorId); return DbHelperSQL.ExecuteSql(sql)>0?true:false; }
数据库删除某个岗位,对应专业中减去该岗位的数值
/// <summary> /// 删除岗位表中的数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public bool DeleteStationByID(int id) { string sql = "delete Station where StationID="+id; UpdateMajorByStation(id); return DbHelperSQL.ExecuteSql(sql) > 0 ? true : false; } /// <summary> /// 删除岗位表中数据更新专业表中number /// </summary> /// <param name="id"></param> public void UpdateMajorByStation(int id) { DAL.majorDAL major = new majorDAL(); DataTable dt = major.selectMajorAll(); DataTable Station = SelectStationInfo(""); foreach (DataRow row in dt.Rows) { int number = int.Parse(row["StationS"].ToString()); foreach (DataRow item in Station.Rows) { int p = int.Parse(item["StationID"].ToString()); if (number >= p) { number -= p; if (p == id) { updateMajorNumber(row["proID"].ToString(), id); } } } } } public void updateMajorNumber(string Majorid,int id) { string sql =string.Format("update Major set StationS-={0} where proID={1}",id,Majorid); DbHelperSQL.ExecuteSql(sql); }ps:好多没解释清楚。算了就这样把
阅读全文
0 0
- 【CRM项目03】专业和岗位管理
- 【CRM项目02】省份管理
- 基于SSH框架-CRM客户资源管理系统-简单小项目开发记录-CRM系统-03
- 项目管理的专业英语
- 项目管理专业英语-项目预测
- 考勤表在Microsoft CRM的专业和咨询服务说明
- duang!当CRM遇到项目管理“客户项目管理系统”
- PMP:项目管理专业人士资格认证
- 项目管理专业英语-风险事件发生
- 项目管理专业英语-风险识别
- 【项目管理】PMP(项目管理专业人士认证)(32)
- 和客CRM客户关系管理服务商
- 如何从技术岗位走向管理岗位?
- 从技术岗位走向管理岗位
- 从技术岗位走向管理岗位
- 对软件项目团队成员进行角色和岗位划分
- 珠海和佳集团CRM项目
- 软件项目开发岗位
- Java回调机制解读
- 编程路上,送给处于迷茫中的你和自己
- C_线性表----约瑟夫环问题(循环链表)
- Java中自写HashSet
- 再次学习《人月》
- 【CRM项目03】专业和岗位管理
- 谈谈如何对栈和队列之间进行互相转换
- Qt中的TCP通信
- c++ 性能优化策略
- POJ 2186 Popular Cows
- Codeforces Round #392 (Div. 2) 758A Holiday Of Equality
- 电阻屏校正 tslib 五点校正算法
- java模块开发关键步骤
- poj2367 Genealogical tree【拓扑排序】