📄 setprogram.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1.KaoChangManage
{
public partial class SetProgram : Form
{
SqlConnection cn = new SqlConnection("SERVER=(local);UID=sa;PWD=sa;Trusted_Connection=True;DATABASE=test1");
baseclass.BaseOperate boperate = new baseclass.BaseOperate();
baseclass.OperateAndValidate opAndvalidate = new baseclass.OperateAndValidate();
public SetProgram()
{
InitializeComponent();
}
private void SetProgram_Load(object sender, EventArgs e)
{
//加载程序题答案表中的信息
DataSet myds = boperate.getds(
"select snumber as 学号, id as 答案编号, answer as 考生答案,remarks as 评语, score as 试题得分 from panswer ", "panswer");
dataGridView1.DataSource = myds.Tables[0];
if (myds.Tables[0].Rows.Count <= 0)
{
dataGridView1.AllowUserToAddRows = true;
}
}
#region 清空显示答案
public void Clear()
{
rTxt.Clear();
richanswer.Clear();
richSanswer.Clear();
}
#endregion
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.White;
dataGridView1.CurrentRow.DefaultCellStyle.BackColor = Color.LightSlateGray;
//如果label可见,则当然rTxt显示的是判卷老师添加的评语
if(label1.Visible)
toolStripBtnOK_Click(sender, e);
label1.Visible = false;
Clear();
if (dataGridView1.CurrentRow.Cells[2].Value != null)
{
//显示考生答案
richSanswer.Text = Convert.ToString(dataGridView1[2, dataGridView1.CurrentCell.RowIndex].Value).Trim();
}
if (dataGridView1.CurrentRow.Cells[4].Value != null)
{
//显示试题得分
tSTxtMark.Text = Convert.ToString(dataGridView1[4, dataGridView1.CurrentCell.RowIndex].Value).Trim();
}
string number = ""; //存放学号
number = dataGridView1.CurrentRow.Cells[0].Value.ToString();
if (cn.State == ConnectionState.Closed)
cn.Open();
SqlCommand scmd = new SqlCommand("select idshijuan from paper where s_number ='" + number + "'", cn);
string shijuanid = scmd.ExecuteScalar().ToString();
//加载程序题试题和参考答案
GetTitle(shijuanid, number);
if (cn.State == ConnectionState.Open)
cn.Close();
}
#region 加载程序题试题和参考答案
/// <summary>
/// 加载程序题试题和参考答案
/// </summary>
/// <param name="shijuanid">试卷id</param>
/// <param name="number">学号</param>
public void GetTitle(string shijuanid,string number)
{
//获取考生试卷中的程序题id
SqlCommand scmd = new SqlCommand("select C from shiti where idshijuan = '" + shijuanid + "'", cn);
//试卷表提取出的程序题id
string curid = scmd.ExecuteScalar().ToString();
//把curid用分隔符分开,存入programid数组
string[] programid = boperate.Split(curid, ";");
//获取考生程序题答案id
scmd = new SqlCommand("select C from answer where snumber='" + number + "'",cn);
curid = scmd.ExecuteScalar().ToString();
//提取去掉分隔符后的程序题答案编号
string[] answerid = boperate.Split(curid, ";");
for (int i = 0; i < answerid.Length; i++)
{
if (answerid[i] == dataGridView1.CurrentRow.Cells[1].Value.ToString())
{
DataSet myds = boperate.getds("select * from program where id='" + programid[i] + "'", "program");
foreach (DataRow row in myds.Tables[0].Rows)
{
richanswer.Text = row["answer"].ToString();
rTxt.Text = row["title"].ToString();
}
}
}
}
#endregion
#region 关闭
private void tsbtnExit_Click(object sender, EventArgs e)
{
if (label1.Visible)
//保存评语
toolStripBtnOK_Click(sender, e);
this.Close();
}
#endregion
#region 添加分数和评语
private void toolStripBtnOK_Click(object sender, EventArgs e)
{
if (tSTxtTNmae.Text.Trim() == "" || tSTxtMark.Text.Trim() == "")
MessageBox.Show("请输入完整的信息!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
if (!opAndvalidate.validateNum(tSTxtMark.Text.Trim()))
errorPnum.SetError(tSTxtMark.Control, "请输入正整数");
else
{
errorPnum.Clear();
string sql = "";
if (label1.Visible)
sql = tSTxtTNmae.Text.Trim() + ";" + rTxt.Text.Trim();
else
sql = tSTxtTNmae.Text.Trim() + ";";
string id = Convert.ToString(dataGridView1[1, dataGridView1.CurrentCell.RowIndex].Value).Trim();
boperate.getcom("update panswer set score ='" + Convert.ToDecimal(tSTxtMark.Text.Trim()) + "', remarks = '" + sql + "' where id ='" + id + "'");
tSTxtMark.Clear();
rTxt.Clear();
SetProgram_Load(sender, e);
}
}
}
#endregion
#region 添加评语
private void pingyu_Click(object sender, EventArgs e)
{
label1.Visible = !label1.Visible;
rTxt.Clear();
this.label1.Text = "请在这里输入评语:";
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -