前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >有规律格式化文本文件插入数据库

有规律格式化文本文件插入数据库

作者头像
Java架构师必看
发布2021-03-22 15:11:10
发布2021-03-22 15:11:10
4690
举报
文章被收录于专栏:Java架构师必看Java架构师必看

现有以下文本文件:

*理光(深圳)工业发展有限公司(D15)(位于福田区) 1.厨师1名;男;30岁以下;高中以上学历;中式烹调师中级以上,需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用,不合格者体检费自理.福利及待遇:工作时间8小时/天.5天/周,双休及国家规定之法定假日休息,免费中餐,免费住宿,为员工投养老工伤医疗保险.提供学习机会. 本公司经营范围:设计,生产复印机,传真机,打印机等; 有意者请于11月9日到本大厦二楼面试。 $ *百佳超市(C10)(位于罗湖区) 1.会计文员1名;女;中专以上学历;有1年以上财务工作经验;财会专业,有对帐经验者优先,成熟稳重,能适应较强的工作压力。 2.便衣保安2名;男;高中以上学历;沟通表达能力好,能吃苦耐劳,有一定的稽查及防损经验,为人正直,有同职工作经验优先。 以上职位要求应聘者身体健康,能自行解决食宿,有年薪假及社保等福利。 有意者请于11月9日、11月11日到本大厦二楼面试。 $ *山姆会员店(A14)(位于福田区) 1.防损员1名;25岁以上;大专以上学历;富有敬业精神和团队合作意识,个性稳定,有一定的判断能力和防损意识,两年以上相关经验。 2.干货部、电器部员工10名;男;高中以上学历;良好的沟通表达能力,有相关电器销售经验者优先。 3.果蔬部、冻品部员工10名;男;高中以上学历;良好的顾客服务意识和团队合作意识,2年以上相关工作经验者优先。 4.夜班理货员工3名;男;高中以上学历;能适应通宵班工作良好的顾客服务意识和团队合作意识,2年以上相关工作经验者优先。 有意者请于11月13日到本大厦二楼面试。 

公司名称以*开头,每条记录间以$分隔,招聘信息以数字序号开始,需要根据以下数据结构进行入库处理: HRNewsPaper ------------------ id(主键) CompanyId(与Company表中id相对应) PositionName PositionNumber Requirement InfoFrom UpdateTime

Company ------------------ id(主键) CompanyName CompanyInfo Note InfoFrom UpdateTime

以下列出关键代码: if(this.IsPostBack)    {     string infos = hR_Content.Text.Trim();     string[] arrInfos =  infos.Split(new char[]{'$'});     string[] companyName = new string[arrInfos.Length];     StringBuilder sbNote = new StringBuilder();     string[] notes = new string[arrInfos.Length];

    //逐条读取企业信息     for(int i = 0; i < arrInfos.Length; i++)     {      string info = arrInfos[i].Trim(new char[]{'/r', '/n'});      string[] arrInfo = info.Split(new char[]{'/n'});      int k = 0;

     string[] positionName =  new string[arrInfo.Length];      int[] positionNumber = new int[arrInfo.Length];      string[] requirement = new string[arrInfo.Length];

     //逐行读取每个企业的招聘信息      for(int j = 0; j < arrInfo.Length; j++)      {       string strLine = arrInfo[j].Trim(new char[]{'/r', '/n'});       //获取公司名称       if(strLine.StartsWith("*"))       {        companyName[i] = strLine.Substring(1);       }       else       {        //获取职位,名额,要求        //strLine = @"1.厨师厨师厨师厨师厨师厨师200名;男;30岁以下;高中以上学历;中式烹调师中级以上,需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用,不合格者体检费自理.";        Regex r = new Regex(@"/d+/.(?<positionName>/D+)(?<positionNumber>/d+)(?<chineseMin>名;)");        Match m = r.Match(strLine);        if(m.Success)        {         positionName[k] = m.Groups["positionName"].Value;         if(m.Groups["positionNumber"].Value != null)         {          positionNumber[k] = int.Parse(m.Groups["positionNumber"].Value);         }

        int index = m.Groups["chineseMin"].Index + 2;         requirement[k] = strLine.Substring(index);         k++;        }        else        {         //获取附加説明文字         sbNote.Append(strLine + "<br />");        }       }       notes[i] = sbNote.ToString().Trim("<br />".ToCharArray());       }      sbNote = new StringBuilder();      //入库      string aa="";      if(positionName.Length <= 0) return;

     string myConnectString = ConfigurationSettings.AppSettings["ConnString"] ;      SqlConnection myConnection = new SqlConnection(myConnectString);      SqlCommand sqlCmd = myConnection.CreateCommand();

     String strSql = "INSERT INTO COMPANY(CompanyName, CompanyInfo, Note, InfoFrom)" +       "VALUES(@CompanyName, @CompanyInfo, @Note, @InfoFromCompany);";      strSql += " Select @@IDENTITY";

     sqlCmd.CommandText = strSql;      sqlCmd.CommandType = CommandType.Text;      SqlParameter CompanyName = sqlCmd.Parameters.Add       ("@CompanyName", SqlDbType.VarChar, 256);      CompanyName.Value = companyName[i]. Replace("(",  "(").Replace(")",  ")");

     SqlParameter CompanyInfo = sqlCmd.Parameters.Add       ("@CompanyInfo", SqlDbType.VarChar, 4000);      CompanyInfo.Value = "";

     SqlParameter Note = sqlCmd.Parameters.Add       ("@Note", SqlDbType.VarChar, 4000);      Note.Value = notes[i];

     SqlParameter InfoFromCompany = sqlCmd.Parameters.Add       ("@InfoFromCompany", SqlDbType.Char, 10);      InfoFromCompany.Value = this.infoFrom;

     myConnection.Open();      _lastID = int.Parse(sqlCmd.ExecuteScalar().ToString());      //sqlCmd.ExecuteNonQuery();      sqlCmd.Dispose();

     for(int m = 0; m < positionName.Length; m++)      {       if(positionName[m] != null)       {        //入库        sqlCmd = myConnection.CreateCommand();

       strSql = "INSERT INTO HRNewsPaper(CompanyId, PositionName, PositionNumber, Requirement, InfoFrom)" +         "VALUES(@CompanyId, @PositionName, @PositionNumber, @Requirement, @InfoFromHR)";        sqlCmd.CommandText = strSql;        sqlCmd.CommandType = CommandType.Text;        SqlParameter CompanyId = sqlCmd.Parameters.Add         ("@CompanyId", SqlDbType.Int);        CompanyId.Value = this.LastID;

       SqlParameter PositionName = sqlCmd.Parameters.Add         ("@PositionName", SqlDbType.VarChar, 60);        PositionName.Value = positionName[m];

       SqlParameter PositionNumber = sqlCmd.Parameters.Add         ("@PositionNumber", SqlDbType.VarChar, 60);        PositionNumber.Value = positionNumber[m];

       SqlParameter Requirement = sqlCmd.Parameters.Add         ("@Requirement", SqlDbType.VarChar, 4000);        Requirement.Value = requirement[m];

       SqlParameter InfoFromHR = sqlCmd.Parameters.Add         ("@InfoFromHR", SqlDbType.Char, 10);        InfoFromHR.Value = this.infoFrom;        sqlCmd.ExecuteNonQuery();        sqlCmd.Dispose();       }      }      myConnection.Close();

本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档