视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001 知道1 知道21 知道41 知道61 知道81 知道101 知道121 知道141 知道161 知道181 知道201 知道221 知道241 知道261 知道281
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
有规律格式化文本文件插入数据库
2020-11-09 15:46:38 责编:小采
文档

现有以下文本文件: *理光(深圳)工业发展有限公司(D15)(位于福田区) 1.厨师1名;男;30岁以下;高中以上学历;中式烹调师中级以上,需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用,不合格者体检费自理.福利及待遇:工作时间8

现有以下文本文件:

*理光(深圳)工业发展有限公司(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+/.(?/D+)(?/d+)(?名;)");
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 + "
");
}
}
notes[i] = sbNote.ToString().Trim("
".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();

下载本文
显示全文
专题