本文共 2910 字,大约阅读时间需要 9 分钟。
在技术实战系列中,我们将重点介绍如何使用 JavaScript 与 SQL Server 实现大学生网上选课系统的功能扩展。本节将详细讲解如何查询选课信息并实现扩课功能。
首先,我们需要在 HTML 文件中创建一个表格来展示课程信息。添加如下代码:
课程编号 | 课程名称 | 上课地点 | 学分 | 学期 | 核定人数 | 选课人数 |
接下来,我们需要通过 JavaScript 连接到 SQL Server 并执行查询。添加以下脚本:
window.onload = function() { //数据库连接配置 const conn = new ActiveXObject("ADODB.Connection"); const rs = new ActiveXObject("ADODB.Recordset"); const strDSN = "Driver={SQL Server};SERVER=DESKTOP-U4DC9JE;UID=sa;PWD=;DATABASE=school"; //查询语句 const sql = "SELECT id, count(sid) AS c, name, dd, xf, xq, rs FROM Course c1, Choose c2 WHERE c1.tid='0101' AND c1.tid=c2.tid AND c1.id=c2.cid GROUP BY id, name, dd, xf, xq, rs"; try { conn.Open(strDSN); rs.open(sql, conn); } catch (e) { alert(e.message); } //输出结果 let name = ''; let id = ''; let dd = ''; let xf = ''; let xq = ''; let rsh = ''; let count = ''; while (!rs.EOF) { id = rs.Fields(1).Value; name = rs.Fields(2).Value; dd = rs.Fields(3).Value; xf = rs.Fields(4).Value; xq = rs.Fields(5).Value; rsh = rs.Fields(6).Value; count = rs.Fields('c').Value; //创建新行 const newRow = document.getElementById('mytableBody').insertRow(1); newRow.className = 'dataRow'; //添加单元格 newRow.appendChild(newRow.insertCell(0).innerHTML = ``); newRow.appendChild(newRow.insertCell(1).innerHTML = ``); newRow.appendChild(newRow.insertCell(2).innerHTML = ``); newRow.appendChild(newRow.insertCell(3).innerHTML = ``); newRow.appendChild(newRow.insertCell(4).innerHTML = ``); newRow.appendChild(newRow.insertCell(5).innerHTML = ``); newRow.appendChild(newRow.insertCell(6).innerHTML = ``); } rs.moveNext();}
为了实现扩课功能,我们需要添加一个按钮并在点击时调用相应的函数。在 HTML 中添加以下内容:
function add() { const id = document.getElementById('id2').value; const rise = document.getElementById('rise').value; const j = parseInt(rise); if (j > 0) { const conn = new ActiveXObject("ADODB.Connection"); const strDSN = "Driver={SQL Server};瑟 ErlçraftSERVER=DESKTOP-U4DC9JE;UID=sa;PWD=mtch1997214;DATABASE=school"; try { conn.Open(strDSN); const sql = `UPDATE Course SET rs=rs + ${j} WHERE id='${id}'`; const execute = conn.execute(sql); } catch (e) { alert(e.description); } alert("扩课操作成功,页面将自动刷新以显示更新"); location.reload(); } else { alert("扩选人数必须大于0!"); }}
以上代码实现了以下功能:
在使用该系统时,请确保:
如果您在使用过程中遇到任何问题,请参考相关技术文档或联系系统管理员进行指导。
转载地址:http://xsagz.baihongyu.com/