asp网页如何读取web.config里面的连接字符串
<% response.expires=-1 sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="sql=sql & "'" & request.querystring("q") & "'" set conn=Server.CreateObject("ADODB.Connection") //连接字符串,应该从web.config里面读取“WEB_DB" <SPAN style="COLOR: #ff0000">conn.Provider="Microsoft.Jet.OLEDB.4.0"</SPAN> conn.Open(Server.Mappath("/db/northwind.mdb")) set rs=Server.CreateObject("ADODB.recordset") rs.Open sql,conn response.write("<table>") do until rs.EOF for each x in rs.Fields response.write("<tr><td><b>" & x.name & "</b></td>") response.write("<td>" & x.value & "</td></tr>") next rs.MoveNext loop response.write("</table>") %>
读取文件参考: http:-//www.-w3school.-com.-cn/asp/met_opentextfile.asp
正则使用参考: http:-//www-.jb51.-net/article/20816.htm 我按照我项目里的web.config文件给你写一个正则,捕获元组捕获到的就是连接字符串。 connectionString="([\s\S]*?)" 不一定完全适用,根据.NET版本的不同web.config文件的结构可能有变化。
如果用subString方式的话,就要几个函数结合起来用,性能也差一点: http-://www-.w3school.-com.-cn/vbscript/func_instr.asp instr、left、right结合起来用就可以取到你要的字符串
我用JS读XML方式弄好了。。。
function get_conn_str() { var strfile = Server.MapPath("/web.config"); var connstr = "test"; try { xmlDoc = new ActiveXObject('Microsoft.XMLDOM'); xmlDoc.async = false; xmlDoc.load(strfile); if(xmlDoc == null) { return "浏览器不支持XML对像"; } var node = xmlDoc.getElementsByTagName("configuration/connectionStrings")[0].childNodes; var nCount = node.length; for(var i=0;i<nCount;i++) { if(node[i].getAttribute("name") == "EPS_WEB") { connstr = "Provider=SQLOLEDB;" + node[i].getAttribute("connectionString"); break; } } } catch(err) { connstr = err.message + strfile; } return connstr; }
|