Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将Access数据库迁移到SQLServer时,我应该在代码中更改什么?_Asp.net_Sql Server_Sql Server 2008_Webmatrix_Webmatrix 2 - Fatal编程技术网

Asp.net 将Access数据库迁移到SQLServer时,我应该在代码中更改什么?

Asp.net 将Access数据库迁移到SQLServer时,我应该在代码中更改什么?,asp.net,sql-server,sql-server-2008,webmatrix,webmatrix-2,Asp.net,Sql Server,Sql Server 2008,Webmatrix,Webmatrix 2,我有一个使用access数据库的网站,我想更改与SQL Server DB的连接,我用SQL Server迁移数据库,但是我必须更改连接代码和SQL请求 这是我在代码中的一个副本(我使用WebMatrix): pageConn.asp: <% Dim conn,connstr,Clkj_mdb Clkj_mdb="/DaTa/#Clkj_Cms#.mdb" connstr="DBQ="+server.mappath(""&Clkj_mdb&"")+";De

我有一个使用access数据库的网站,我想更改与SQL Server DB的连接,我用SQL Server迁移数据库,但是我必须更改连接代码和SQL请求

这是我在代码中的一个副本(我使用WebMatrix):

pageConn.asp:

 <% Dim conn,connstr,Clkj_mdb
    Clkj_mdb="/DaTa/#Clkj_Cms#.mdb"
    connstr="DBQ="+server.mappath(""&Clkj_mdb&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
    on error resume next
    set conn=server.createobject("ADODB.CONNECTION")
    conn.open connstr
        if err then
            err.clear
            set conn=nothing
            response.write "Connect Error!"
            response.End         
        End IF
   %>

我应该在这部分也做些改变吗

Class.asp:

<% If request.querystring("Edit")="B_E" Then 
    Set Rs=server.createobject("ADODB.Recordset")
    Sql="select * from clkj_BigClass where clkj_BigClassID ="&request("clkj_BigClassID")
    Rs.open Sql,conn,1,1
%>


谢谢你抽出时间

在这种情况下,不需要对SQL进行任何更改,但需要更改连接字符串。您可以在此处找到示例连接字符串:

这样的事情应该可以做到:

connstr = "Provider=sqloledb;Data Source=<name of server>;Initial Catalog=<name of database>;User Id=<user id>;Password=<password>"
connstr=“Provider=sqloledb;数据源=;初始目录=;用户Id=;密码=”
展望未来,JET SQL(Access)和T-SQL(SQL Server)之间的主要区别是:

不能在T-SQL中的DELETE语句中使用*:
DELETE*From MyTable
在SQL Server中变成
DELETE From MyTable

Access中的“是/否”列将成为SQL Server中的位字段。在SQL Server中,True由1表示,而不是Access中的-1


如果在JET SQL中使用#作为日期的分隔符,则必须在T-SQL中将其更改为单引号。

我应该做什么来代替此变量:Clkj#u mdb
Clkj_mdb=“/DaTa/#Clkj_Cms#.mdb”
Nothing。它只是一个文件的路径。SQL Server连接字符串不需要路径。但此变量用于其他页面,如:
包含文件路径的变量Clkj_mdb用于另一个asp页面:
我应该做什么来代替此变量?我不知道应用程序需要它做什么,所以我无法回答这个问题。