问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

基于ASP.NET的数据迁移方法

发布网友 发布时间:2023-04-27 04:23

我来回答

1个回答

热心网友 时间:2023-10-21 20:34

   引言

  近年来 国内许多高校逐步建立了网络基础设施 构建了一些应用系统 但由于缺乏对数字校园总体结构的认识 出现了系统构建各自为政 缺乏统一规划 已构建的系统互割裂 信息与资源无法共享 而有些系统则集成度过高 维护与升级困难 网络基础服务平台与应用系统脱节等问题

  在数字化校园的建设中 URP(University Resource Plan)概念的提出很好地解决了信息共享等问题 URP通过建立统一的数据库 制定统一的信息标准 使各种信息系统以松散耦合的方式集成起来 保障了数据的一致性 可靠性 可用性和安全性 原有系统中的历史数据 可以通过数据迁移的方式导入到新系统中 但在数据迁移的过程中 新的问题也随之而来

   数据迁移所面临的问题

  目前 信息系统的开发大都是利用SQL Server Oracle Sybase等大型数据库 数字化校园 建设中的数据库系统也大多采用这几种数据库 而Dbase FoxBASE FoxPro是我国近年来应用比较广泛的数据库开发软件 高校中仍有很多管理系统采用这种DBF格式的数据库 随着新系统的使用 原有系统中多年来积累的大量的宝贵的数据资料如何导入到新系统中 成为一个要解决的问题 也就是我们将面临如何将原始的数据迁移到新系统数据库中

   解决思路

  统一数据库的主要目的是实现数据共享 保障数据的一致性 但不论是新的信息系统 还是原有的信息系统 每个系统的业务本身并没有发生本质的变化 因此在数据库的结构到数据方面 都可以保持基本一致 只是采用的数据库平台不同 另外 SQL Server自身提供的DTS(Data Transformation Services)工具 也包含了将Dbase FoxBASE FoxPro等旧格式数据库文件导入到SQL数据库的功能

  因此 根据实际的业务需求 利用ASP NET所提供的数据库操作功能 配合SQL语句来编程 完全可以替代DTS的所有功能 从而实现大量的历史数据迁移至新的数据库系统中

   设计与实现

  以全国高校毕业生就业管理系统为例 具体说明如何实现数据迁移功能

  原系统为教育部统一使用的单机版软件 采用FoxPro编写 并使用DBF格式文件存储数据 新系统是采用B/S结构 使用ASP NET编写及SQL Server数据库存储数据

  在编写程序进行数据迁移的过程中需要解决以下几个问题

  ( )    原系统数据文件为DBF格式 在SQL Server中 DBF文件所在的文件夹被认为是一个数据库 DBF文件被认为是一个数据表

  ( )    数据迁移过程中 DBF文件可能存放在客户端 SQL Server数据库在服务器端 这需要将DBF文件先上传至服务器端再进行操作

  ( )    根据用户业务需求 数据迁移功能应包含初次迁移 追加数据 覆盖数据等功能

   DBF文件上传

  传统的DBF格式数据文件 一般文件体积较小 因此采用ASP NET提供的上传组件即可 对于上传文件类型 限定为 DBF格式 以上传学生基本信息表student dbf为例 上传功能代码如下

  //判断文件大小是否为

  if (File PostedFile ContentLength> )

  {

  string fileExt=Path GetExtension(File

  PostedFile FileName) ToLower();

  //判断是否为DBF格式文件

  if(fileExt!= dbf )

  {

  //出错提示

  Label Text= 只能上传dbf格式文件!! ;

  }

  //合法的非空的dbf文件

  else

  {

  //指定上传目录

  string filepath=Server MapPath( Data/ );

  //上传至指定目录中

  File PostedFile SaveAs(filepath+

   student dbf );

  //进行相关数据迁移操作

  ……

  }

  }

  else

  {

  //出错提示

  Label Text= 上传文件字节数为 !! ;

  }

   DBF文件导入

  若在SQL Server数据库中不存在目标数据表 则使用导入并生成新表的命令 导入并建立新数据表功能代码如下

  //打开SQL Server数据库连接

  myConnection Open();

  //filepath为DBF文件上传时定义的目标文件夹

  //该语句将指定文件夹中的student dbf文件

  //导入至SQL Server的新建数据表student中

  string creattb= SELECT * INTO student FROM

  Openrowset( MSDASQL Driver=Microsoft

  Visual FoxPro Driver;SourceDB= +filepath+ ;

  SourceType=DBF select* from student ) ;

  //定义SQL命令

  SqlCommand myComm=new SqlCommand(

  creattb myConnection);

  //执行导入命令

  myComm ExecuteNonQuery();

  //关闭数据库连接

  myComm Dispose();

  myConnection Close();

  //操作成功提示信息

  Label Text= 导入并生成学生数据表成功!! ;

   DBF文件追加

  若SQL Server数据库中已存在student数据表 则使用追加命令导入数据 追加数据功能代码如下

  //打开SQL Server数据库连接

  myConnection Open();

  //filepath为DBF文件上传时定义的目标文件夹

  //该语句将指定文件夹中的student dbf文件

  //追加至SQL Server的数据表student中

  string creattb= INSERT INTO student

  SELECT * FROM Openrowset( MSDASQL

   Driver=Microsoft Visual FoxPro Driver;

  SourceDB= +filepath+ ;

  SourceType=DBF select* from student ) ;

  //定义SQL命令

  SqlCommand myComm=new SqlCommand(

  creattb myConnection);

  //执行导入命令

  myComm ExecuteNonQuery();

  //关闭数据库连接

  myComm Dispose();

  myConnection Close();

  //操作成功提示信息

  Label Text= 导入学生数据表成功!! ;

   DBF文件覆盖

  若导入的数据需覆盖SQL Server数据库中原有数据 则需先执行删除语句 再执行导入语句 数据覆盖功能代码如下

  //打开SQL Server数据库连接

  myConnection Open();

  //删除SQL Server中student数据表内容

  string creattb= delete from student ;

  //定义SQL命令

  SqlCommand myComm=new SqlCommand

  (creattb myConnection);

  //执行删除命令

  myComm ExecuteNonQuery();

  //filepath为DBF文件上传时定义的目标文件夹

  //该语句用指定文件夹中的student dbf文件

  //覆盖SQL Server数据表student中的数据

  creattb= INSERT INTO student SELECT *

  FROM Openrowset( MSDASQL

   Driver=Microsoft Visual FoxPro Driver;

  SourceDB= +filepath+ ;

  SourceType=DBF select* from student ) ;

  //重新定义SQL命令

  myComm CommandText=creattb;

  //执行导入命令

  myComm ExecuteNonQuery();

  //关闭数据库连接

  myComm Dispose();

  myConnection Close();

  //操作成功提示信息

  Label Text= 覆盖学生数据表成功!! ;

  从上面的代码中 可以看出覆盖操作被分解为删除 追加两步执行

  类似的 也可以先删除SQL Server中的student数据表 然后采用 的导入并生成数据表两个操作来实现覆盖数据 其中 删除数据表可使用SQL 命令 DROP TABLE student 来实现

   结 语

  在程序的可靠性 准确性等方面 通过对数万条学生信息的迁移测试和校验 数据的导入 追加 覆盖等功能 完全达到了要求 能将原有的DBF数据文件准确快速的导入到SQL Server数据库中

lishixin/Article/program/net/201311/13312

热心网友 时间:2023-11-12 21:31

   引言

  近年来 国内许多高校逐步建立了网络基础设施 构建了一些应用系统 但由于缺乏对数字校园总体结构的认识 出现了系统构建各自为政 缺乏统一规划 已构建的系统互割裂 信息与资源无法共享 而有些系统则集成度过高 维护与升级困难 网络基础服务平台与应用系统脱节等问题

  在数字化校园的建设中 URP(University Resource Plan)概念的提出很好地解决了信息共享等问题 URP通过建立统一的数据库 制定统一的信息标准 使各种信息系统以松散耦合的方式集成起来 保障了数据的一致性 可靠性 可用性和安全性 原有系统中的历史数据 可以通过数据迁移的方式导入到新系统中 但在数据迁移的过程中 新的问题也随之而来

   数据迁移所面临的问题

  目前 信息系统的开发大都是利用SQL Server Oracle Sybase等大型数据库 数字化校园 建设中的数据库系统也大多采用这几种数据库 而Dbase FoxBASE FoxPro是我国近年来应用比较广泛的数据库开发软件 高校中仍有很多管理系统采用这种DBF格式的数据库 随着新系统的使用 原有系统中多年来积累的大量的宝贵的数据资料如何导入到新系统中 成为一个要解决的问题 也就是我们将面临如何将原始的数据迁移到新系统数据库中

   解决思路

  统一数据库的主要目的是实现数据共享 保障数据的一致性 但不论是新的信息系统 还是原有的信息系统 每个系统的业务本身并没有发生本质的变化 因此在数据库的结构到数据方面 都可以保持基本一致 只是采用的数据库平台不同 另外 SQL Server自身提供的DTS(Data Transformation Services)工具 也包含了将Dbase FoxBASE FoxPro等旧格式数据库文件导入到SQL数据库的功能

  因此 根据实际的业务需求 利用ASP NET所提供的数据库操作功能 配合SQL语句来编程 完全可以替代DTS的所有功能 从而实现大量的历史数据迁移至新的数据库系统中

   设计与实现

  以全国高校毕业生就业管理系统为例 具体说明如何实现数据迁移功能

  原系统为教育部统一使用的单机版软件 采用FoxPro编写 并使用DBF格式文件存储数据 新系统是采用B/S结构 使用ASP NET编写及SQL Server数据库存储数据

  在编写程序进行数据迁移的过程中需要解决以下几个问题

  ( )    原系统数据文件为DBF格式 在SQL Server中 DBF文件所在的文件夹被认为是一个数据库 DBF文件被认为是一个数据表

  ( )    数据迁移过程中 DBF文件可能存放在客户端 SQL Server数据库在服务器端 这需要将DBF文件先上传至服务器端再进行操作

  ( )    根据用户业务需求 数据迁移功能应包含初次迁移 追加数据 覆盖数据等功能

   DBF文件上传

  传统的DBF格式数据文件 一般文件体积较小 因此采用ASP NET提供的上传组件即可 对于上传文件类型 限定为 DBF格式 以上传学生基本信息表student dbf为例 上传功能代码如下

  //判断文件大小是否为

  if (File PostedFile ContentLength> )

  {

  string fileExt=Path GetExtension(File

  PostedFile FileName) ToLower();

  //判断是否为DBF格式文件

  if(fileExt!= dbf )

  {

  //出错提示

  Label Text= 只能上传dbf格式文件!! ;

  }

  //合法的非空的dbf文件

  else

  {

  //指定上传目录

  string filepath=Server MapPath( Data/ );

  //上传至指定目录中

  File PostedFile SaveAs(filepath+

   student dbf );

  //进行相关数据迁移操作

  ……

  }

  }

  else

  {

  //出错提示

  Label Text= 上传文件字节数为 !! ;

  }

   DBF文件导入

  若在SQL Server数据库中不存在目标数据表 则使用导入并生成新表的命令 导入并建立新数据表功能代码如下

  //打开SQL Server数据库连接

  myConnection Open();

  //filepath为DBF文件上传时定义的目标文件夹

  //该语句将指定文件夹中的student dbf文件

  //导入至SQL Server的新建数据表student中

  string creattb= SELECT * INTO student FROM

  Openrowset( MSDASQL Driver=Microsoft

  Visual FoxPro Driver;SourceDB= +filepath+ ;

  SourceType=DBF select* from student ) ;

  //定义SQL命令

  SqlCommand myComm=new SqlCommand(

  creattb myConnection);

  //执行导入命令

  myComm ExecuteNonQuery();

  //关闭数据库连接

  myComm Dispose();

  myConnection Close();

  //操作成功提示信息

  Label Text= 导入并生成学生数据表成功!! ;

   DBF文件追加

  若SQL Server数据库中已存在student数据表 则使用追加命令导入数据 追加数据功能代码如下

  //打开SQL Server数据库连接

  myConnection Open();

  //filepath为DBF文件上传时定义的目标文件夹

  //该语句将指定文件夹中的student dbf文件

  //追加至SQL Server的数据表student中

  string creattb= INSERT INTO student

  SELECT * FROM Openrowset( MSDASQL

   Driver=Microsoft Visual FoxPro Driver;

  SourceDB= +filepath+ ;

  SourceType=DBF select* from student ) ;

  //定义SQL命令

  SqlCommand myComm=new SqlCommand(

  creattb myConnection);

  //执行导入命令

  myComm ExecuteNonQuery();

  //关闭数据库连接

  myComm Dispose();

  myConnection Close();

  //操作成功提示信息

  Label Text= 导入学生数据表成功!! ;

   DBF文件覆盖

  若导入的数据需覆盖SQL Server数据库中原有数据 则需先执行删除语句 再执行导入语句 数据覆盖功能代码如下

  //打开SQL Server数据库连接

  myConnection Open();

  //删除SQL Server中student数据表内容

  string creattb= delete from student ;

  //定义SQL命令

  SqlCommand myComm=new SqlCommand

  (creattb myConnection);

  //执行删除命令

  myComm ExecuteNonQuery();

  //filepath为DBF文件上传时定义的目标文件夹

  //该语句用指定文件夹中的student dbf文件

  //覆盖SQL Server数据表student中的数据

  creattb= INSERT INTO student SELECT *

  FROM Openrowset( MSDASQL

   Driver=Microsoft Visual FoxPro Driver;

  SourceDB= +filepath+ ;

  SourceType=DBF select* from student ) ;

  //重新定义SQL命令

  myComm CommandText=creattb;

  //执行导入命令

  myComm ExecuteNonQuery();

  //关闭数据库连接

  myComm Dispose();

  myConnection Close();

  //操作成功提示信息

  Label Text= 覆盖学生数据表成功!! ;

  从上面的代码中 可以看出覆盖操作被分解为删除 追加两步执行

  类似的 也可以先删除SQL Server中的student数据表 然后采用 的导入并生成数据表两个操作来实现覆盖数据 其中 删除数据表可使用SQL 命令 DROP TABLE student 来实现

   结 语

  在程序的可靠性 准确性等方面 通过对数万条学生信息的迁移测试和校验 数据的导入 追加 覆盖等功能 完全达到了要求 能将原有的DBF数据文件准确快速的导入到SQL Server数据库中

lishixin/Article/program/net/201311/13312
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
前几天在楼下吃饭,店家推荐使用淘气购支付,听说可以用豆豆换东西。会... 绵阳淘气购科技有限公司怎么样? 四川省淘气购商贸有限公司怎么样? 盐酸洛美沙星分散片的作用 盐酸洛美沙星颗粒的剂量如何根据不同感染情况调整? 盐酸洛美沙星颗粒的化学名是什么? 盐酸洛美沙星胶囊功效 洛美沙星盐酸洛美沙星 洛美沙星的功效与作用 盐酸洛美沙星颗粒能治疗哪些类型的感染? 我是个小学生我自己想纹身纹在左胸上自已纹求大家回复自己怎么纹 中浣的网络解释中浣的网络解释是什么 掩体和遮蔽物的区别 蜂语的解释蜂语的解释是什么 蜂字的意思 蜂是什么意思 旅游活动方案范文5篇 五凫的解释五凫的解释是什么 虹膜的词语 虹膜的词语是什么 眼球外肌包括哪些? 眼睛珠的词语眼睛珠的词语是什么 防新冠的是n95还是kn95 ne5口罩是什么 土蜂的结构土蜂的结构是什么 马蜂的结构马蜂的结构是什么 游蜂的结构游蜂的结构是什么 工蜂的结构工蜂的结构是什么 喜欢靠着自斟自酌自饮来消愁的星座 如何在adobephotoshop中给扁平化的插图添加纹理 桃卯的网络解释桃卯的网络解释是什么 古隆中有什么好玩的古隆中在哪里 网上龚文婧是真的吗 东站福临堂坐诊医生是谁 无地的解释 卯册的解释 比卯的引证解释比卯的引证解释是什么 卯云的引证解释卯云的引证解释是什么 册子的引证解释册子的引证解释是什么 筹酌的引证解释筹酌的引证解释是什么 卯饭的成语卯饭的成语是什么 淘宝2019双12格子宝物介绍淘宝2019双12格子宝物都是什么 fight and fuck的歌词中文翻译 冰箱双循环和单循环哪个更好? 26个英语单用汉字伐表列如A恩B比 求韩国歌手ran的歌曲茫然的中文谐音歌词 耳机线分别为蓝绿红铜色这4条线哪条是左右声道其他的线又 电话诈骗是怎么骗走钱的 电话诈骗如何处理? 网上能不能买插卡摄像头 8p64G插卡版有前摄像头听筒是什么意思? 乐优特户外灯怎么样