【第三次实验进度博客】C#中对数据库的增删改查

本周的进度:

1、设及了一个个人课程表的数据库,其中主要包括三个表:课程表信息、课程信息、教师信息,后两者以课程号和教师编号为主码,分别作为课程表信息中的外码,课程表信息以星期和节次为主码,主要代码以下所示,前期有些简单,后面再慢慢完善。

create table teacher(
				tno char(9) primary key, 
				tname char(10),
				title char(10),  //职称
				tmajor char(10)   //所属专业
				)
				
create table course(
				cno char(9) primary key,
				cname char(10),
				ctime char(10),   //课时
				examine char(10),   //考查方式
				ctno char(9),    //老师编号
				foreign key(ctno) references teacher(tno)
				)
create table clatime(
				weektime char(10) ,
				classnumber int,
				scno char(9),
				foreign key(scno) references course(cno),
				stno char(9),
				foreign key(stno) references teacher(tno),
				primary key(weektime,classnumber)
				)
insert into teacher values('1555','王明','副教授','CS');
insert into teacher values('1444','赵天海','讲师','AI');
insert into teacher values('1111','李杰','无','CS');
insert into teacher values('1222','孙磊','副教授','AI');
insert into teacher values('1333','周悦','教授','AI');
insert into teacher values('2333','郑平','副教授','政法');
insert into teacher values('2666','周悦','教授','政法');
insert into teacher values('3666','王东','教授','体育');


insert into course values('02','数据库原理','52','考试','1222');
insert into course values('03','电子线路','72','考试','1111');
insert into course values('04','马克思原理','72','考试','2333');
insert into course values('05','创业基础','36','论文','1555');
insert into course values('06','大学英语','72','考试','1444');
insert into course values('07','电路实验','72','考察','1111');
insert into course values('08','数据库实验','72','考察','1222');
insert into course values('09','毛泽东概论','72','论文','2666');
insert into course values('10','大学体育','72','考察','3666');
insert into course values('11','运筹学','72','考试','1333');
insert into course values('12','数学模型','72','考察','1333');

insert into course values('01','数学模型','72','考试','1233');
insert into clatime values('周一',1,'02','1222');
insert into clatime values('周一',2,'03','1111');
insert into clatime values('周一',3,'02','1555');
insert into clatime values('周一',5,'04','2333');
insert into clatime values('周二',2,'12','1333');
insert into clatime values('周二',3,'06','1444');
insert into clatime values('周二',5,'12','1333');
insert into clatime values('周三',2,'07','1111');
insert into clatime values('周三',3,'02','1222');
insert into clatime values('周三',4,'02','1222');
insert into clatime values('周三',5,'09','2666');
insert into clatime values('周四',1,'06','1444');
insert into clatime values('周四',2,'03','1111');
insert into clatime values('周四',5,'09','2666');
insert into clatime values('周五',2,'11','1333');
insert into clatime values('周五',3,'10','3666');
insert into clatime values('周五',3,'10','3666');

登陆面:

主页面

增加:

值得一提的是,增删改查的过程中遇到了一个主要的问题困扰了我一段时间,错误是发生在每次启动程序之后,增删改都只能操作一次,比如如上增加完之后如果不重启程序直接修改的话就会报如下错误:

经过一段时间的查找资料和调试程序,终于发现了错误之所在:

主要是因为我们每个button里都有一句这个con.Open();语句,但在用完之后并没有关闭他,因此如果不重启程序的话,他就会一直打开着。解决方法是:在每个button最后都将其关闭:con.Close(); 即可。

con.close()和con.dispose()区别

主要是因为我把

连接数据库的语句拉到了外面作为了公共实例化对象来使用,因此每次用完之后并没有重新实例化连接对象,所以finally中的dispose也就决定了con再次open时会报错。最后了发现老师的在查询部分也用了close,可能是当时讲了我没记清楚。。。

修改:

删除周八等课程:

查询信息:

教师信息:

课程信息:

代码比较多就不在这儿放了,基本操作完成的感觉还可以,后续再继续完善~

原创文章 25 获赞 20 访问量 9724

猜你喜欢

转载自blog.csdn.net/Freedomhy/article/details/106155304
今日推荐