So I'm trying to make a simple C# console app that simply queries a database - nothing more.
However, I keep getting this error:
An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
Additional information: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Now, I've tried EVERYTHING! I've edited all my settings(added firewall exception, enabled TCP/IP, just about any solution you can find with a google search, I did). When I try to make a connection using SQL Management Studio using the same credentials that are in my connection string, everything works PERFECTLY. BUt for some reason, nothing works from Visual Studio.
Here is my Connection String:
<add name="Invoicing"
connectionString="Data Source=server;Initial Catalog=Invoicing;Persist Security Info=True;ID=id;Password=pw"
providerName="System.Data.SqlClient" />
Here is app:
class Program
{
public static void Main(string[] args) {
Invoicing db = new Invoicing("Invoicing");
var q = from sin Invoice
where s.Date == 201007
select s;
foreach(var sin q)
Console.WriteLine("{0}, {1}", s.CreateDate,
s.EndDate);
}
}
Here is my stack trace:
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user)
at System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe()
at System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode()
at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.GetQueryText(Expression query)
at System.Data.Linq.DataQuery`1.ToString()
I created the DataContext using SqlMetal, if that matters.
Also, I am using .Net 2008 and SQL 2008.
Does anyone have any ideas on what to do?
Make sure that TCP/IP is enabled. To make it enable follow the steps: Click on Configuration Manager of SQL Server. Now you can check the TCP/IP port status as Enabled or Disabled. You need to make it Enable and click on status to change port Properties. Now fill Default Port no 1433 click on OK button.
It's probably worth just testing if the following works:
SqlConnection con = new SqlConnection("Data Source=server;Initial Catalog=Invoicing;Persist Security Info=True;ID=id;Password=pw");
To me it looks like your connection string is probably not right - there's no user provided. I use the following connection string: "Data Source=ServerNameHere;Initial Catalog=DBNameHere;User ID=XXXX;Password=XXXX"
You said you enabled TCP/IP, but did you disable Named Pipes? I have run into this before and disabling Named Pipes using Sql Server Configuration Manager resolved it for me.
You can also specify the protocol in the connection string, so you may also want to try that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With