请C#大神帮我解释下这段代码的意思,最好是详细点儿,谢谢啦
这是自动考试系统上开始考试按钮的代码privatevoidbtnStart_Click(objectsender,EventArgse){stringStrSql="";...
这是 自动考试系统 上 开始考试 按钮的代码
private void btnStart_Click(object sender, EventArgs e)
{
string StrSql="";
if (this.btnStart.Text == "开始考试")
{
this.label3.Text = DateTime.Now.ToShortTimeString();
StrSql = "Update tbl_XuanKe set stats='T' where classid='" + this.cmbClass.Text.Substring(0, 3) + "' and kcid='" + this.cmbKeMu.Text.Substring(0, 2) + "'";
this.timer1.Enabled = true;
this.btnStart.Text = "停止考试";
this.cmbClass.Enabled = cmbKeMu.Enabled = false;
}
else
{
StrSql = "Update tbl_XuanKe set stats='F' where classid='" + this.cmbClass.Text.Substring(0, 3) + "' and kcid='" + this.cmbKeMu.Text.Substring(0, 2) + "'";
this.timer1.Enabled = false;
this.btnStart.Text = "开始考试";
this.cmbClass.Enabled = cmbKeMu.Enabled = true;
}
if (MyClass.ExecuteDate(StrSql) < 0)
{
MessageBox.Show("考试开始出错!");
return;
}
listView1.Items.Clear();
DataSet myset1 = new DataSet();
myset1 = MyClass.QueryDate("select nostudent,name from studentname where banji='" + cmbClass.Text.Substring(0, 3) + "'");
for (int i = 0; i < myset1.Tables[0].Rows.Count; i++)
{
ListViewItem aa = new ListViewItem();
aa.ImageIndex = 0;
aa.Text = myset1.Tables[0].Rows[i][0].ToString() +"_"+ myset1.Tables[0].Rows[i][1].ToString();
this.listView1.Items.Add(aa);
}
} 展开
private void btnStart_Click(object sender, EventArgs e)
{
string StrSql="";
if (this.btnStart.Text == "开始考试")
{
this.label3.Text = DateTime.Now.ToShortTimeString();
StrSql = "Update tbl_XuanKe set stats='T' where classid='" + this.cmbClass.Text.Substring(0, 3) + "' and kcid='" + this.cmbKeMu.Text.Substring(0, 2) + "'";
this.timer1.Enabled = true;
this.btnStart.Text = "停止考试";
this.cmbClass.Enabled = cmbKeMu.Enabled = false;
}
else
{
StrSql = "Update tbl_XuanKe set stats='F' where classid='" + this.cmbClass.Text.Substring(0, 3) + "' and kcid='" + this.cmbKeMu.Text.Substring(0, 2) + "'";
this.timer1.Enabled = false;
this.btnStart.Text = "开始考试";
this.cmbClass.Enabled = cmbKeMu.Enabled = true;
}
if (MyClass.ExecuteDate(StrSql) < 0)
{
MessageBox.Show("考试开始出错!");
return;
}
listView1.Items.Clear();
DataSet myset1 = new DataSet();
myset1 = MyClass.QueryDate("select nostudent,name from studentname where banji='" + cmbClass.Text.Substring(0, 3) + "'");
for (int i = 0; i < myset1.Tables[0].Rows.Count; i++)
{
ListViewItem aa = new ListViewItem();
aa.ImageIndex = 0;
aa.Text = myset1.Tables[0].Rows[i][0].ToString() +"_"+ myset1.Tables[0].Rows[i][1].ToString();
this.listView1.Items.Add(aa);
}
} 展开
1个回答
展开全部
private void btnStart_Click(object sender, EventArgs e)
{
string StrSql="";//这个不说了嘛
if (this.btnStart.Text == "开始考试")//如果按钮是"开始考试"
{
this.label3.Text = DateTime.Now.ToShortTimeString();//label3显示系统时间
StrSql = "Update tbl_XuanKe set stats='T' where classid='" + this.cmbClass.Text.Substring(0, 3) + "' and kcid='" + this.cmbKeMu.Text.Substring(0, 2) + "'";
//给StrSQl赋一个查询语句值
this.timer1.Enabled = true;//定时器开始
this.btnStart.Text = "停止考试";//按钮显示"停止考试"
this.cmbClass.Enabled = cmbKeMu.Enabled = false;//按钮无效
}
else//不是"开始考试"
{
//这里是更新数据库
StrSql = "Update tbl_XuanKe set stats='F' where classid='" + this.cmbClass.Text.Substring(0, 3) + "' and kcid='" + this.cmbKeMu.Text.Substring(0, 2) + "'";
this.timer1.Enabled = false;//定时器停止
this.btnStart.Text = "开始考试";
this.cmbClass.Enabled = cmbKeMu.Enabled = true;//控件有效
}
if (MyClass.ExecuteDate(StrSql) < 0)//这里应该是你程序中自动义类里面的一个方法吧?
{
MessageBox.Show("考试开始出错!");
return;//返回,后面的程序不执行。
}
listView1.Items.Clear();//listView中数据清空
DataSet myset1 = new DataSet();//实例化DataTable。
//这里是查询数据库语句,这里就开始链接数据库了,访问数据库的studentname工作表
myset1 = MyClass.QueryDate("select nostudent,name from studentname where banji='" + cmbClass.Text.Substring(0, 3) + "'");
for (int i = 0; i < myset1.Tables[0].Rows.Count; i++)//获取studentname表格中的行数,该表格目前放在maset1的第一张表格里面
{
ListViewItem aa = new ListViewItem();
aa.ImageIndex = 0;
//获取表格中的每行内容,目测你的 studentname只有2列。
aa.Text = myset1.Tables[0].Rows[i][0].ToString() +"_"+ myset1.Tables[0].Rows[i][1].ToString();
this.listView1.Items.Add(aa);//把每行的内容添加到listView1控件里面以供显示。
//弱弱问一个,为何要用ListView呢,而不用datagridview。
}
}
//数据太多(上万条数据)的话,你的这个代码,软件估计会卡死或者假死,出现无响应的现象。
追问
我不知道呢,谢谢你,虽然我还是不懂
追答
用datagridview,绑定数据源。
你下面的代码:
for (int i = 0; i < myset1.Tables[0].Rows.Count; i++)//获取studentname表格中的行数,该表格目前放在maset1的第一张表格里面
{
ListViewItem aa = new ListViewItem();
aa.ImageIndex = 0;
//获取表格中的每行内容,目测你的 studentname只有2列。
aa.Text = myset1.Tables[0].Rows[i][0].ToString() +"_"+ myset1.Tables[0].Rows[i][1].ToString();
this.listView1.Items.Add(aa);//把每行的内容添加到listView1控件里面以供显示。
//弱弱问一个,为何要用ListView呢,而不用datagridview。
}
就可以换成:
datagridview.DataSource=myset1.Tables[0];
一句代码就搞定。你用个for循环,一条一条往ListView中添加,速度太慢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询