⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scoreform.cs

📁 计算机考试管理系统 包括模拟测试
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;

namespace CTestApp
{
    public partial class ScoreForm : Form
    {
        protected SqlConnection conn;
        protected DataTable m_testScoreTable;
        protected DataTable m_testeeScoreTable;

        public ScoreForm()
        {
            InitializeComponent();
        }

        private void ScoreForm_Load(object sender, EventArgs e)
        {
            try
            {
                conn = new SqlConnection(ConfigurationManager.ConnectionStrings["TestLibraryConnectionString"].ConnectionString);
                conn.Open();
                m_testScoreTable = new DataTable();
                m_testeeScoreTable = new DataTable();
                this.LoadTestInfo();
                dataGridView1.DataSource = m_testScoreTable;
                dataGridView2.DataSource = m_testeeScoreTable;
            }
            catch (Exception exp)
            {
                MessageBox.Show("无法建立数据连接:" + exp.Message + exp.StackTrace, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.Close();
            }
        }

        private void ScoreForm_FormClosing(object sender, FormClosingEventArgs e)
        {
                if (conn != null && conn.State != ConnectionState.Closed)
                    conn.Close();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int iTestID;
            if (int.TryParse(comboBox1.SelectedValue.ToString(), out iTestID))
                this.ShowTestScore(iTestID, 3, 2);
        }

        private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            this.ShowTesteeScore((int)comboBox1.SelectedValue, m_testScoreTable.Rows[e.RowIndex]["TesteeNumber"].ToString(), 3, 2);
        }

        /// <summary>
        /// 载入现有测试列表
        /// </summary>
        protected void LoadTestInfo()
        {
            SqlCommand cmd1 = new SqlCommand("GetTestInfo", conn);
            cmd1.CommandType = CommandType.StoredProcedure;
            DataTable table1 = new DataTable();
            table1.Load(cmd1.ExecuteReader());
            if (table1.Rows.Count == 0) //无现有测试
            {
                comboBox1.Enabled = false;
            }
            else
            {
                comboBox1.DataSource = table1;
                comboBox1.ValueMember = "ID";
                comboBox1.DisplayMember = "Information";
            }
        }

        /// <summary>
        /// 显示测试成绩
        /// </summary>
        /// <param name="testID">测试ID号</param>
        /// <param name="score1">单选题标准分</param>
        /// <param name="score2">多选题标准分</param>
        protected void ShowTestScore(int testID, int score1, int score2)
        {
            SqlCommand cmd1 = new SqlCommand("OutputScores", conn);
            cmd1.CommandType = CommandType.StoredProcedure;
            SqlParameter par1 = new SqlParameter("@testID", SqlDbType.Int);
            par1.Value = testID;
            cmd1.Parameters.Add(par1);
            par1 = new SqlParameter("@score1", SqlDbType.Int);
            par1.Value = score1;
            cmd1.Parameters.Add(par1);
            par1 = new SqlParameter("@score2", SqlDbType.Int);
            par1.Value = score2;
            cmd1.Parameters.Add(par1);
            m_testScoreTable.Clear();
            m_testScoreTable.Load(cmd1.ExecuteReader());
        }

        /// <summary>
        /// 显示测试详细信息
        /// </summary>
        /// <param name="testID">测试ID号</param>
        /// <param name="testeeNumber">考生考号</param>
        /// <param name="score1">单选题标准分</param>
        /// <param name="score2">多选题标准分</param>
        protected void ShowTesteeScore(int testID, string testeeNumber, int score1, int score2)
        {
            SqlCommand cmd1 = new SqlCommand("OutputScore", conn);
            cmd1.CommandType = CommandType.StoredProcedure;
            SqlParameter par1 = new SqlParameter("@testID", SqlDbType.Int);
            par1.Value = testID;
            cmd1.Parameters.Add(par1);
            par1 = new SqlParameter("@testeeNumber", SqlDbType.NVarChar, 5);
            par1.Value = testeeNumber;
            cmd1.Parameters.Add(par1);
            par1 = new SqlParameter("@score1", SqlDbType.Int);
            par1.Value = score1;
            cmd1.Parameters.Add(par1);
            par1 = new SqlParameter("@score2", SqlDbType.Int);
            par1.Value = score2;
            cmd1.Parameters.Add(par1);
            par1 = new SqlParameter("@score", SqlDbType.Int);
            par1.Direction = ParameterDirection.Output;
            cmd1.Parameters.Add(par1);
            m_testeeScoreTable.Clear();
            m_testeeScoreTable.Load(cmd1.ExecuteReader());
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -