跪求高人解读一段代码
functionrun_in_sandbox($exec_file,$case){global$CFG;$ret=newObject();$ret->output='';...
function run_in_sandbox($exec_file, $case) {
global $CFG;
$ret = new Object();
$ret->output = '';
$result = array('pending', 'ac', 'rf', 'mle', 'ole', 'tle', 're', 'at', 'ie');
/* Only root can chroot(set jail)
$jail = $CFG->dataroot.'/temp/sandbox_jail/';
if (!check_dir_exists($jail, true, true)) {
mtrace("Can't mkdir ".$jail);
return 'ie';
}
*/
$sand = $CFG->dirroot . '/mod/assignment/type/onlinejudge/sandbox/sand';
if (!is_executable($sand)){
$ret->status = 'ie';
return $ret;
} 展开
global $CFG;
$ret = new Object();
$ret->output = '';
$result = array('pending', 'ac', 'rf', 'mle', 'ole', 'tle', 're', 'at', 'ie');
/* Only root can chroot(set jail)
$jail = $CFG->dataroot.'/temp/sandbox_jail/';
if (!check_dir_exists($jail, true, true)) {
mtrace("Can't mkdir ".$jail);
return 'ie';
}
*/
$sand = $CFG->dirroot . '/mod/assignment/type/onlinejudge/sandbox/sand';
if (!is_executable($sand)){
$ret->status = 'ie';
return $ret;
} 展开
1个回答
展开全部
if (!IsPostBack)是第一次加载页面时运行的代码,如果没有的话,点击按钮时会重新加载一次页面,这样的话后面的代码会执行第二次,当你点击完按钮你会发现下面代码执行的向dropdownlist中添加的Item会重复出现2次。
而if (!IsPostBack)中的代码都是用For循环的方式给dropdownlist动态加载项。比如
for (int i = 1940; i < 2000; i++)
{
this.ddlBirthdayYear.Items.Add(i.ToString());
}
这个就是给ddlBirthdayYear加载项,显示的结果是从1940直到1999,。这个应该是显示年份的吧?其余的加载的不用我再解释了吧?
btn_add_Click事件中是数据库操作,虽然我没用过Oracle数据库,但是和SqlServer、access数据库都差不多
XIAOYOU xy = new XIAOYOU();
这句话是实例化一个实体类。
xy.XueHao = this.tb_id.Text.Trim();
xy.XingMing = this.tb_name.Text.Trim();
if(this.rbBoy.Checked)
if (this.rbGirl.Checked)
xy.ZhuanYe = this.ddlZhuanYe.SelectedValue.Trim();
xy.JiGuan = this.ddlJiGuan.SelectedValue.Trim();
xy.GongZuoJianLi = this.tbGZJL.Text.Trim();
xy.DuiBie = this.ddlDuiBie.SelectedValue.Trim();
xy.Birthday = ddlBirthdayYear.SelectedValue.Trim() + ddlBirthdayMonth.SelectedValue.Trim() + ddlBirthdayDay.SelectedValue.Trim();
xy.RuXueNianFen = ddlRXYear.SelectedValue.Trim();
xy.RuXueShiJian = ddlRXYear.SelectedValue.Trim() + ddlRXMonth.SelectedValue.Trim() + ddlRXDay.SelectedValue.Trim();
xy.BiYeShijian = ddlBYYear.SelectedValue.Trim() + ddlBYMonth.SelectedValue.Trim() + ddlBYDay.SelectedValue.Trim();
xy.CengCi = ddlCengCi.SelectedValue.Trim();
xy.GongZuoJianLi = tbGZJL.Text.Trim();
xy.RuxueqiandanWei = tb_DanWei.Text.Trim();
这些代码全部都是给你刚刚实例化的实体类赋值,其中this.tb_id.Text.Trim();这句是获取去除TextBox中的值去掉空格后的字符串。其余的类似。
if(this.rbBoy.Checked)
而这句话就是如果checkbox是选中状态的话,便取出其中的值。其余的类似。
xy.Birthday = ddlBirthdayYear.SelectedValue.Trim() + ddlBirthdayMonth.SelectedValue.Trim() + ddlBirthdayDay.SelectedValue.Trim();
而这句必须提醒你,这本来是个拼接日期的字符串,但是你没有用datetime.Tryparse()这个方法来转换,如果你数据库中的格式是日期格式,那么肯定会出错。其余的类似。
string sql = "insert into tb_alumni(XH,XM,XB,JG,RXQDW,CC,ZY,DB,CSNY,RXSJ,BYSJ,RXNF,GZJL)
values('" + xy.XueHao + "','" + xy.XingMing + "','" + xy.XingBie + "','" + xy.JiGuan + "',
'" + xy.RuxueqiandanWei + "','" + xy.CengCi + "','" + xy.ZhuanYe + "','" + xy.DuiBie + "',
'" + xy.Birthday + "','" + xy.RuXueShiJian + "','" + xy.BiYeShijian + "','" + xy.RuXueNianFen +"','" + xy.GongZuoJianLi + "')";
这句是拼接了一个sql语句,因为SqlServer和Oracle的基本语句差不多,所以没什么问题,只是你的命名就有问题了这就是命名规范问题了,用来插入一条数据,不过用这种方式不太安全,有漏洞,希望你不要养成用这种方式的习惯。
OracleDbHelper.ExecuteNonQuery(xy,sql);
这句话就是执行Oracle语句的方法,专门写了一个OracleDbHelper的方法来执行数据库操作,没什么好说的,这就是数据库操作的问题了。我想这句话应该加一个判断和提示,因为不管执行操作成不成功,都会执行下面的语句,在执行数据库造作的时候,都会给一个int类型的返回值,如果返回值>0则执行成功!
Response.Redirect("~/xiaoyou/List_Depart.aspx");这句话是页面转向语句。没什么好说的。
protected void tb_id_TextChanged(object sender, EventArgs e)
{
}
这个估计是你点错了在TextBox上双击了,自动生成的吧?或许是在TextBox文本变化时你还有操作但还没写代码?
这样应该差不多了吧?够详细了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询