我正在尝试通过ODBC连接将我的.NET Web服务连接到SQL Server。
这是我的ODBC连接
然后我通过VS2017在服务器资源管理器中创建了一个数据连接:
在web.config中,我有以下内容:
using(OdbcConnection connection = new OdbcConnection(ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString))
using(OdbcCommand command = connection.CreateCommand() {
command.CommandText = "SELECT * FROM table1";
connection.Open(); // This is where I get the error
}
在我的代码中,我通过
连接Login failed for user ''.
错误消息是:
if isinstance(value, datetime.datetime):
我注意到用户是空白的。我不明白为什么。我知道连接有效,因为我测试了它。
答案 0 :(得分:0)
提供程序名称为System.Data.SqlClient
,但您使用的是ODBC。
答案 1 :(得分:0)
您无法从存储的ODBC连接中获取用户名和密码。如果您打开Regedit并查看密钥
HKEY_CURRENTUSER\Software\ODBC\ODBC.INI\NGDEV
您永远不会找到密码密钥, LastUser 密钥也不代表您在拨打DSN时将此值传递给您的密码。
相反,当您再次重新配置已保存的ODBC时,它将用于初始化询问密码的对话框。
您需要将您的连接字符串更改为此类
<add name="MyConnection"
connectionString="Dsn=NGDEV;Uid=sa;Pwd=***whatever***"
providerName="System.Data.Odbc"/>
这当然为许多安全问题敞开了大门。