把文本中的记录写入数据库中

本文介绍了一种将文本文件中的记录导入Access数据库的方法。通过使用自定义的CTYDataPdp类,实现了从文本文件中读取每条记录,并将其字段逐一分离,最后将这些字段写入Access数据库中的指定表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有一个文本文件,文件中每一行是一套记录,一条记录有8个字段,每个字段中间用TAB空开,将文件中的记录写入ACCESS数据库中的XZJH表中,操作如下:

 CTYDataP dp;    //自定义的一个操作数据库的类
 dp.OpenDatabase("Tool.mdb");  //连接名为tool.mdb的数据库
 dp.OpenDataSet("select * from xzjh");   //打开select * from xzjh数据集
 CStdioFile sf(_T("C_XZ_JH.txt"),CFile::modeRead);  //打开名为C_XZ_JH.txt的文件
 CString line;
 CString temp[8];
 while(sf.ReadString(line))
 {
  int j=0,i=0;
 while(j!=-1)
 {
  j=line.Find('/t');
  if(j==-1)
   break;
  temp[i]=line.Left(j);
  i++;
  line=line.Right(line.GetLength()-j-1);
 }
 temp[7]=line;
 dp.m_pRecordset->AddNew();
 dp.m_pRecordset->put_Collect(_variant_t("区管号"),_variant_t(temp[0]));
 dp.m_pRecordset->put_Collect(_variant_t("单位编号"),_variant_t(temp[1]));
 dp.m_pRecordset->put_Collect(_variant_t("单位名称"),_variant_t(temp[2]));
 dp.m_pRecordset->put_Collect(_variant_t("参保号"),_variant_t(temp[3]));
 dp.m_pRecordset->put_Collect(_variant_t("姓名"),_variant_t(temp[4]));
 dp.m_pRecordset->put_Collect(_variant_t("性别"),_variant_t(temp[5]));
 dp.m_pRecordset->put_Collect(_variant_t("身份证"),_variant_t(temp[6]));
 dp.m_pRecordset->put_Collect(_variant_t("位置码"),_variant_t(temp[7]));
 dp.m_pRecordset->put_Collect(_variant_t("标志"),_variant_t("n"));
 dp.m_pRecordset->Update();
 }
内层的while循环读取一条记录中的单个字段,保存到数组temp中。

下面是一些函数的说明:

CString::Find(t),在字符串中查找t,找到就返回t在字符串中的位置,位置从0开始。t可以是单个字符,可以是字符串。

CString::Left(n),在字符串中截获子串,返回从左边第一个字符开始的n个字符。

CString::Right(n),在字符串中截获子串,返回从右边第一个字符开始的n个字符。

CStdioFile::ReadString(line),读取文件中的一行,以字符串的形式保存在line中。

数据库的操作采用ADO技术,下次介绍
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值