java、jsp编程

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:42:30
我做的是一个学生学籍选课管理系统,要求当学生选择课程时不允许重复选择同一门课程,这个模块的主要代码如下:
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = (Connection) DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=wu", "sa", "aa");//注意接口和数据库名

state = conn.createStatement();
//System.out.println("121");

StringBuffer sql1=new StringBuffer("select 课程编号,课程名称 from kcxx");
sql1.append( " where 课程编号 ='");
sql1.append(KCBH);
sql1.append("'and 课程名称 ='");
sql1.append(KCMC);
sql1.append("'");

rs = state.executeQuery(sql1.toString());
//rs.last();
System.out.println("执行结果"+sql1.toString());
//int r = rs.getRow();
if(!rs.next()){
//String pword =rs

我告诉你个最简单的方法,你在插入数据库之前,先执行一个查询的语句,如果查到了用户选过这个课,就提示不能选了,也不插入数据库。

懂没?先根据用户名和选课名称查询是不是选了这个课。如果查到了就提示选过了,并且不插入数据库了,如果没有,就直接插入数据库。

select 课程编号,课程名称 from kcxx,这里查询表名是kcxx,而添加的表名为xkxx(insert into xkxx),你看看是不是这块的问题

select * from table where 课程id not in (select 课程id form 课程表) and userid=11111

每次可选的都是这个人未选的课程就不会再有问题了!

StringBuffer sql = new StringBuffer("insert into xkxx (学号,教师编号,课程编号)" );这句上面加上以下内容(具体代码及判断条件应该不难吧)
select * from table(存储相应学生课程的表)where 课程名=“选择的课程名”得到一个result
if(result有数据){
你写的代码
StringBuffer sql = new StringBuffer("insert into xkxx (学号,教师编号,课程编号)" );
sql.append( "VALUES ('");
//sql.append(r+1);
//sql.append("','");
sql.append(XH);
sql.append("','");
sql.append(JSBH);
sql.append("','");
sql.append(KCBH);
sql.appen