【发布时间】:2020-02-05 13:53:21
【问题描述】:
我总是在我的代码中使用这个连接字符串来连接到 sql server:
"Driver={SQL Server};Server=SERVER_ADDRESS;Database=DBNAME;User Id=MYUSER;Password=******;"
在一个新网站中,当我在真实服务器上部署项目时,我注意到由于 sql server 版本,我必须使用新的连接字符串:
"Driver={ODBC Driver 17 for SQL Server};Server=SERVER_ADDRESS;Database=DBNAME;User Id=MYUSER;Password=*****;"
连接正常,网站正常工作,但记录集中的所有值都是空的! 我有 5 个菜单,因为数据库中有 5 条记录,但所有菜单都显示空文本! 事实上,所有文本都是空的,但数据库中有文本记录(当我检查 SSMS 时)。我需要在我的代码或连接字符串中添加一些新内容吗?
这是我从数据库中获取数据的方式:
Set objcon = Server.CreateObject("ADODB.Connection")
objcon.connectionString="Driver={ODBC Driver 17 for SQL Server};Server=SERVER_ADDRESS;Database=DBNAME;User Id=MYUSER;Password=*****;"
objcon.Open
Set rs= Server.CreateObject("ADODB.RecordSet")
rs.CursorType = 2
rs.open "select * from menu",objcon
while not rs.eof
Response.Write rs("title") 'I get 5 empty texts here as I have 5 record in database
rs.movenext
wend
rs.close
【问题讨论】:
-
没有区别。我有很多字段,例如单独选择的网站标题,但它也是空的! @Flakes
-
我试过 rs("title").value 但没有变化。 @Gert-Jan
-
对于 ADO 经典,我建议您使用 OLE DB 而不是 ODBC。如果 MSOLEDBSQL 不起作用,您可以尝试 the latest MSOLEDBSQL driver 或 Windows 附带的向后兼容的 SQLOLEDB 提供程序。
-
这些字段是否有可能是 NVARCHAR(MAX)?
-
这能回答你的问题吗? Switching from sqloledb to odbc driver 13 for SQL Server(你的一个@DanGuzman)
标签: sql-server asp-classic connection-string sql-server-2017