2012-12-13 79 views
10

我有一个ASP文件。其实我用我的文件中的connectionString连接到数据库。从ASP.Classic中的Web.Config读取ConnectionString

sConnString = "Driver={SQL Server}; Server=localhost; Database=DB" 

有没有办法从Web.Config读取ConnectionString?

编辑:

得到它一起工作:

' Imports a connection string from an xml file (usually web.config) 
Function ImportConnectionString(webConfig, attrName, reformatDSN) 
    Dim oXML, oNode, oChild, oAttr, dsn 
    Set oXML=Server.CreateObject("Microsoft.XMLDOM") 
    oXML.Async = "false" 
    oXML.Load(Server.MapPath(webConfig)) 
    Set oNode = oXML.GetElementsByTagName("connectionStrings").Item(0) 
    Set oChild = oNode.GetElementsByTagName("add") 
    ' Get the first match 
    For Each oAttr in oChild 
     If oAttr.getAttribute("name") = attrName then 
      dsn = oAttr.getAttribute("connectionString") 
      If reformatDSN Then 
       ' Optionally reformat the connection string (adjust as needed) 
       dsn = Replace(dsn, "User ID=", "UID=") 
       dsn = Replace(dsn, "Password=", "PWD=") 
       dsn = Replace(dsn, "Data Source=", "Server=") 
       dsn = Replace(dsn, "Initial Catalog=", "Database=") 
       dsn = Replace(dsn, "Persist Security Info=True;", "") 
       dsn = "Provider=MSDASQL;Driver={SQL Server};" & dsn 
      End If 
      ImportConnectionString = dsn 
      Exit Function 
     End If 
    Next 
End Function 

用法:

dsn = ImportConnectionString("..\web.config", "ConnectionStringName", false) 
sql = "SELECT * FROM MyTable" 
Set oConn = Server.CreateObject("ADODB.Connection") 
Set oRS = Server.CreateObject("ADODB.RecordSet") 
oConn.Open dsn 
oRS.Open sql, oConn 

If NOT oRS.EOF Then 
    oRS.MoveFirst 
    Do 
     Response.Write("&nbsp; &nbsp; &nbsp;" & oRS("Column1") & "<br/>") 
     oRS.MoveNext 
    Loop Until oRS.EOF 
End If 

感谢您的帮助

回答

5

由于Web.config文件的XML,只是将它加载到一个XML DOM并以这种方式访问​​它的元素。

+0

谢谢你的链接帮助了我很多 – Paks

+0

我也发现[此页](http://www.c-sharpcorner.com/UploadFile/sd_patel/WebConfigInASPNet11242005061608AM/WebConfigInASPNet.aspx)展示了如何提取从一个连接字符串web.config – mfeineis

+0

@vanhelgen你链接的页面正在做他的答案中描述的webaware。 – crush

相关问题