Beispiel #1
0
        /// <summary>
        /// 设置班级模型名称及修改IP对应的学生姓名
        /// </summary>
        /// <param name="xdoc"></param>
        /// <param name="classname"></param>
        public static void SetStuName(DataTable dts, string classname, string savepath, string xmlfile)
        {
            XmlDocument xmlsave = new XmlDocument();
            string      xmltype = xmlfile.Substring(xmlfile.LastIndexOf(".") + 1);

            xmlsave = ReadXml(xmlfile);

            XmlNode root = xmlsave.SelectSingleNode("classmodel"); //这行是专门用于设置模型的班级姓名,请匆改动。

            root.Attributes["name"].Value = classname;             //设置班级模型名称

            XmlNodeList nodeList = root.ChildNodes;

            if (nodeList[0].Name != "student")
            {
                XmlNode newroot = root.SelectSingleNode("students");
                nodeList = newroot.ChildNodes;
            }

            foreach (XmlNode xn in nodeList)
            {
                XmlNode addressNode = xn.SelectSingleNode("address");
                string  ip          = addressNode.Attributes["IP"].Value;
                StuMsg  theStu      = GetStuNameByIp(dts, ip);  //根据IP,获取该班级该IP就座的学生姓名
                if (theStu != null && theStu.isOk)
                {
                    XmlNode nameNode = xn.SelectSingleNode("name");
                    nameNode.InnerText = theStu.Sname;//如果有就座学生则修改
                    XmlNode groupNode = xn.SelectSingleNode("group");
                    if (theStu.Sleader)
                    {
                        groupNode.Attributes["leader"].Value = "1";
                    }
                    else
                    {
                        groupNode.Attributes["leader"].Value = "0";
                    }
                    if (theStu.Sgroup > 0)
                    {
                        groupNode.InnerText = theStu.Sgtitle;
                    }
                }
            }
            string savefile = TodaySavePath(savepath) + @"\" + classname + "." + xmltype;

            if (File.Exists(savefile))
            {
                File.Delete(savefile);
            }
            xmlsave.Save(savefile);//保存生成的新班级模型
        }
Beispiel #2
0
        /// <summary>
        /// 根据IP返回姓名
        /// </summary>
        /// <param name="dtclass"></param>
        /// <param name="ip"></param>
        /// <returns></returns>
        private static StuMsg GetStuNameByIp(DataTable dtclass, string ip)
        {
            StuMsg mystu  = new StuMsg();
            int    dcount = dtclass.Rows.Count;

            LearnSite.BLL.Students sbll = new BLL.Students();
            for (int i = 0; i < dcount; i++)
            {
                string dtip = dtclass.Rows[i]["Qip"].ToString();
                if (dtip.Equals(ip))
                {
                    mystu.Sname   = dtclass.Rows[i]["Qname"].ToString();
                    mystu.Sleader = bool.Parse(dtclass.Rows[i]["Sleader"].ToString());
                    int sgroup = 0;
                    if (dtclass.Rows[i]["Sgroup"] != null && dtclass.Rows[i]["Sgroup"].ToString() != "")
                    {
                        sgroup = Int32.Parse(dtclass.Rows[i]["Sgroup"].ToString());
                    }
                    mystu.Sgroup = sgroup;
                    if (mystu.Sleader)
                    {
                        mystu.Sgtitle = dtclass.Rows[i]["Sgtitle"].ToString();
                    }
                    else
                    {
                        if (sgroup > 0)
                        {
                            mystu.Sgtitle = sbll.GetSgtitle(sgroup);
                        }
                        else
                        {
                            mystu.Sgtitle = "";
                        }
                    }
                    mystu.isOk = true;
                    break;
                }
            }
            return(mystu);
        }