使用在Windows上配置的DSN连接ODBC(无用户名和密码)

我需要在C#中开发Windows窗体应用程序以连接ODBC,选择表及其列,最后获取它们的数据。

我确切需要显示系统上可用的DSN列表,并在选择后显示其数据库,然后显示其列中的表列表。 此后,我需要使用本地db列映射所有这些列并定期获取数据。

当我开始编程时(参见下面的代码),我看到在创建ODBC连接时它询问我需要连接的数据库的用户名和密码(配置了DSN),即使我已经在控制面板中设置DSN时提供了这些凭据。

OdbcConnection conn = new OdbcConnection("Dsn=MyDSN;Uid=***;Pwd=****;"); string query = ""; OdbcCommand cmd = new OdbcCommand(query, conn); conn.Open(); 

我需要你的帮助来确认它是否正确,或者还有其他一些方法来直接通过DSN连接数据库而不使用用户名和密码,因为我的客户说明为什么我应该在窗口应用程序中提供凭证,即使我已经提供了DSN配置。

我认为您在DSN配置向导中提供的凭据仅用于获取数据库列表。

DSN配置向导 - 连接到SQL Server

为什么我应该在窗口应用程序中提供凭证,即使我已经提供了DSN配置

没有必要在DSN配置中提供凭据。

此外,您可能希望在服务器上创建一些服务(代理),可以将其配置为使用特定凭据。

http://www.c-sharpcorner.com/UploadFile/8ef97c/odbc-dsn-using-in-Asp-Net/

在ASP.Net中使用ODBC DSN的一步一步的文章。

我已按照此进行测试。 它工作正常 –

我的代码从db中提取客户列表 –

 OdbcDataAdapter da = new OdbcDataAdapter( "SELECT * FROM [SH_Customer]", ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); DataTable dt = new DataTable(); da.Fill(dt); GridView1.DataSource = dt; GridView1.DataBind(); 

和web配置中的连接字符串 –

  

如果您事先知道您的连接是安全的,则可以通过在标签中的配置文件中添加属性/值“Trusted_Connection = Yes”,使程序在Windows中使用存储的DNS凭据(如果之前已配置):

    

问候。