我正在尝试在Visual Studio 2019的控制台应用程序中连接microsoft SQL Server数据库。
我收到错误消息:SQL Server不存在或访问被拒绝。
我怀疑我的连接字符串可能不正确,因此我将SQLDriverConnect函数与SQL_DRIVER_COMPLETE_REQUIRED结合使用来提示窗口,因此我可以手动选择要连接的服务器。
SQLDriverConnect(SQLConnHandle,desktopHandle,(SQLCHAR*)"",SQL_NTS,OutConString,1024,NULL,SQL_DRIVER_COMPLETE_REQUIRED)
注意:OutConnectionString是第5个参数,InConnectionString是第3个参数
有了这个,我可以打印返回到OutConnectionString的连接字符串,也可以访问数据库并打印其内容。
但是当我尝试将OutConnectionString复制到InConnectionString时,它仍然返回相同的错误。
SQLDriverConnect(SQLConnHandle,(SQLCHAR*)"Dsn=JoelDB;UID=myID;PWD=myPW;WSID=JE-accOUNTS;DATABASE=myDB;Network=DBMSSOCN;Address=JE-accOUNTS\SQLEXPRESS,1433",SQL_DRIVER_NOPROMPT)
我已经尝试在Windows防火墙中为端口1433创建一个例外,以及本站点的其他建议,但无济于事。
https://www.sqlserverlogexplorer.com/database-does-not-exist-access-denied/
我知道该连接存在,因为我能够通过SQL_DRIVER_COMPLETE_REQUIRED参数进行连接,而且我还能够通过“工具”>“连接到数据库”在Visual Studio中手动加载数据库。
我想手动将连接字符串放入代码中,因为每次运行/调试程序时,在提示窗口中单击以选择所需的数据库是不方便的。