Visual Studio 2013 incompatibility with MS SQL Server 2014
>我的连接字符串在PowerShell中可以正常工作.
>与服务器资源管理器连接时,我的连接在Visual Studio中工作.
>连接在C#代码中不起作用,我已经把它剥离到一个基本的控制台项目,尽可能基本.
>我已经尝试过在论坛中可能找到的连接字符串的所有迭代. (我现在去过30多个论坛,很容易)
>我已经尝试过sql Server身份验证和Windows身份验证.这两种形式都可以在PowerShell和Visual Studio Server Explorer中使用.
请不要将此标记为无关紧要,因为这与C#和NOT sql有关.
服务器已正确设置为远程访问和连接类型.
using System; using System.Data.sqlClient; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { System.Data.sqlClient.sqlConnectionStringBuilder builder = new System.Data.sqlClient.sqlConnectionStringBuilder(); builder.DataSource = "SERVERNAME"; builder.InitialCatalog = "DATABASE"; builder.IntegratedSecurity = true; Console.WriteLine(builder.ConnectionString); sqlConnection conn = new sqlConnection(builder.ConnectionString); conn.open(); Console.WriteLine(conn.State); } } }
在PowerShell,同一台机器上,此代码有效.
$dataSource = "SERVERNAME" $database = "DATABASE" $connectionString = "Server = $dataSource; Database = $database; Integrated Security = $TRUE;" $connection = New-Object System.Data.sqlClient.sqlConnection $connection.ConnectionString = $connectionString $connection.open() Write-Host $connection.State
解决方法
System.Data.sqlClient.sqlConnectionStringBuilder builder = new System.Data.sqlClient.sqlConnectionStringBuilder(); builder.DataSource = "SERVERNAME"; builder.IntegratedSecurity = true; builder.InitialCatalog = "DATABASE"; builder.UserID = "userid"; builder.Password = "password"; Console.WriteLine(builder.ConnectionString);
Data Source = SERVERNAME; Initial Catalog = DATABASE; Integrated Security = True; User ID = userid; Password = password
请注意,Integrated Security = True;表示您要使用当前的Windows帐户凭据进行身份验证;在这种情况下,不需要用户ID和密码.
资料来源:https://msdn.microsoft.com/en-us/library/ms254947%28v=vs.110%29.aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。