Asp.Net: 从Php+Mysql到Asp.Net+SqlServer

来源:互联网 发布:mac excel sover 编辑:程序博客网 时间:2024/05/22 13:54

最近遇到需要将一个Php网站,一个老旧的部分功能只被老旧的IE8才支持的网站,要重新用起来维护起来,衡量了一下在就网站做修改的功夫基本与新建一个网站持平,于是乎,就有了从php到asp.net的代码转换,和mysql到sqlserver的数据库转换的问题。

首先呢,代码转换是没有现成的工具的,也不可能有,不是从技术上而是从需求上,所以转换只能是靠程序员人工转运代码。代码都是相同的,这个对于有几年经验的程序员都不是难事。前端代码可以大部分重用,如果不想花时间精力的话,当然页眉页脚菜单登陆等常规的就不一定要转换了,可以用自己现成有的。JS部分可能会造成一些麻烦,因为有些跟逻辑相关。

代码要跑起来首先得有数据库,网上可以查到不少mysql转到sql server的方式,首先要安装mysql-connector-odbc,这里默认会给出最新版,但最新版可能装不上,那么可以选择老一点的版本,点击那个“Looking for previous GA versions”,就可以选择5.2.7之类的以前的版本了,笔直就换成了这个版本成功装上的。后面的创建DSN部分也还好,Data Source Name随便明明,笔者把命名为和数据库名称一样叫eshinetest,后面方便,description留空,IP写127.0.0.1,user是root,密码别填错了,正确的话就能够选Database了,点击Test应该可以正确连接。然后就是在sql server数据库创建链接服务器了,这里笔者倒腾了大半天,最后的链接语句类似下面,

EXEC sp_addlinkedserver  @server = 'eshinetest', @srvproduct='eshinetest', @provider = 'MSDASQL', @datasrc = 'eshinetest'GOEXEC sp_addlinkedsrvlogin  @rmtsrvname='eshinetest', @useself='false', @locallogin='sa',@rmtuser='root',@rmtpassword='数据库密码'

反正名字都用eshinetest,不管哪个field正确的可能性都会大些,如此便可以展开目录了,看到正确的数据库了,否则只能看到default并且展开报错。
然后这个链接数据库右击并没有提供多少选项,需要自己写sql语句来搬运到sql server,笔者新建了个叫test1的数据库,执行

SELECT * INTO test1.dbo.adad  FROM OPENQUERY (eshinetest ,'select * from eshinetest_bak.adad' ) 

这里eshinetest是链接服务器,eshinetest_bak是这个链接服务器下面的数据库,adad是里面的表,test1.dbo.这个也必须写否则会出错。按这种方式把所有的表都执行一次,就可以生成数据库结构并把数据也插入进去。
还没完,生成的数据库表没有主键,id也不是自增,自己要设置一下,某些字段类型如果自己想调整的话也可以调一下,比如datetime2想改成datetime。

最后提一句习惯sqlserver不熟悉mysql的,可以下载navicat_premium这个客户端查看mysql数据。里面也有导出功能还可以导出成access2007文件让sql server导入,不过笔者导出的时候遇到错误就没这么做了大家可以尝试一下。

0 0
原创粉丝点击