Visual Studio Code Map: Unable to connect to the specified database
Asked Answered
C

3

28

I can't use Code Map in Visual Studio due to this error:

Unable to connect to the specified database.

An exception occurred attempting to connect to a database using the following connection string: Data Source=(LocalDB)\v11.0;AttachDbFilename=;Initial Catalog=master;Integrated Security=True;Enlist=False;Asynchronous Processing=True;MultipleActiveResultSets=True;Connect Timeout=30.

Check that the specified SQL Server instance exists and the service is running.

I've read this questions with the same problem:

Code Map not working in VS2012

visual studio 2012 ultimate new dependency graph error

1) I've installed SQL Server Data Tools for VS2012

2) I've updated VS, and re-installed SQL Server component (in a default uninstall/modify/repair menu)

3) Then I successfully stopped and deleted local database (like in 2nd question):

sqllocaldb stop "v11.0" -k

sqllocaldb delete "v11.0"

But failed to create one:

sqllocaldb create "v11.0"

Creation of LocalDB instance "v11.0" failed because of the following error:

The specified LocalDB version is not available on this computer.

But creating and starting another version succeeded:

sqllocaldb create "v12.0"

LocalDB instance "v12.0" created with version 12.0.2000.8.

sqllocaldb start "v12.0"

LocalDB instance "v12.0" started.

Now I'm confused what is actually wrong. After each step I restarted VS and tried to use diagrams - but nothing changed.

How to fix the problem?

Cassaba answered 18/4, 2014 at 13:3 Comment(2)
Can you change the connection string to: Data Source=(LocalDB)\v12.0; etc.?Dimeter
I don't know where it is. It is not in App.config, this string appears in error textCassaba
O
3

Have you tried changing your database name? You can use something like (Look at your appsettings.json file or web.config file)

<add name="DefaultConnection" connectionString="Server=YourDatasource;Database=DatabaseNameAsYouWish;Integrated Security=SSPI" providerName="System.Data.SqlClient" />

If you use SQL Management Studio, you will find the Data Source Connection string while you are connecting to the database. Copy and paste it, then try again. If it works, let me know, please.

Edit: Setup Connection String for ASP.NET Core 5 Web API Project

Step 1: For ASP.NET Core 5, in the appsettings.json file, put the connection string

"ConnectionStrings": {
    "sqlConnection": "Server=YourServerName;Database=YourDatabaseName;Integrated Security=true; Trusted_Connection=True;"
  },

(Note: If you want to use localdb, the connection string would be

"ConnectionStrings": {
    "sqlConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;"
  },

)

Where to find Server name?

  1. Open SQL Server Management Studio

Server Name

  1. In the Server name field, if you do not see the server name listed, click Browse for more...

Click Browse for more...

  1. Click the + sign next to Database Engine and you will see your Server name. Click on the server name and select it. Now connect to your SQL Server.

enter image description here

Now connect to your SQL Server.

Step 2. In the startup.cs add the service in the ConfigureServices(IServiceCollection services){ place your sql connectiono service here } method

// DatabaseContext comes from DatabaseContext.cs
            services.AddDbContext<DatabaseContext>(options => 
                options.UseSqlServer(Configuration.GetConnectionString("sqlConnection")) // sqlConnection comes from appSettings connectionString
            );
Outbound answered 11/5, 2014 at 18:2 Comment(1)
I've used App.config file instead and connectionString must be copied from exception text. But the general idea is right, thank youCassaba
F
56

This worked for me:

Delete, Create, Start localDB instance used by CodeMap:

%localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB

Using these commands:

sqllocaldb stop "MSSQLLocalDB" -k
sqllocaldb delete "MSSQLLocalDB"
sqllocaldb create "MSSQLLocalDB" 
sqllocaldb start "MSSQLLocalDB"

Then restart VS

Fitzger answered 8/6, 2019 at 15:3 Comment(2)
Working! Thx you bro!Tollbooth
I received an error when trying to create a new instance, but I noticed one was created when I re-ran code map.Halothane
O
3

Have you tried changing your database name? You can use something like (Look at your appsettings.json file or web.config file)

<add name="DefaultConnection" connectionString="Server=YourDatasource;Database=DatabaseNameAsYouWish;Integrated Security=SSPI" providerName="System.Data.SqlClient" />

If you use SQL Management Studio, you will find the Data Source Connection string while you are connecting to the database. Copy and paste it, then try again. If it works, let me know, please.

Edit: Setup Connection String for ASP.NET Core 5 Web API Project

Step 1: For ASP.NET Core 5, in the appsettings.json file, put the connection string

"ConnectionStrings": {
    "sqlConnection": "Server=YourServerName;Database=YourDatabaseName;Integrated Security=true; Trusted_Connection=True;"
  },

(Note: If you want to use localdb, the connection string would be

"ConnectionStrings": {
    "sqlConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;"
  },

)

Where to find Server name?

  1. Open SQL Server Management Studio

Server Name

  1. In the Server name field, if you do not see the server name listed, click Browse for more...

Click Browse for more...

  1. Click the + sign next to Database Engine and you will see your Server name. Click on the server name and select it. Now connect to your SQL Server.

enter image description here

Now connect to your SQL Server.

Step 2. In the startup.cs add the service in the ConfigureServices(IServiceCollection services){ place your sql connectiono service here } method

// DatabaseContext comes from DatabaseContext.cs
            services.AddDbContext<DatabaseContext>(options => 
                options.UseSqlServer(Configuration.GetConnectionString("sqlConnection")) // sqlConnection comes from appSettings connectionString
            );
Outbound answered 11/5, 2014 at 18:2 Comment(1)
I've used App.config file instead and connectionString must be copied from exception text. But the general idea is right, thank youCassaba
S
2

Check out the difference between automatic and named (or private) LocalDb instances.

The support files necessary for v11.0 (SQL Server 2012) are probably no longer installed on your system. v12.0 indicates SQL Server version 2014.

Stevenage answered 14/11, 2014 at 16:14 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.