# System.InvalidOperationException: The ConnectionString 'DefaultConnection' has an invalid format. Expected format: 'Server=tcp:myserver.database.windows.net,1433;Database=mydb;User ID=myuser;Password=mypassword;Encrypt=True;TrustServerCertificate=False;'

- **ID:** `cloud/azure-sql-connection-string-format-invalid`
- **Domain:** cloud
- **Category:** config_error
- **Error Code:** `InvalidOperationException`
- **Verification:** ai_generated
- **Fix Rate:** 93%

## Root Cause

The connection string provided for Azure SQL Database does not follow the required format, often due to missing keywords like 'Server', 'Database', or 'User ID', or using incorrect separators.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Microsoft.Data.SqlClient 5.1.0 | active | — | — |
| System.Data.SqlClient 4.8.5 | active | — | — |
| .NET 8 | active | — | — |
| .NET Framework 4.8 | active | — | — |

## Workarounds

1. **Construct the connection string exactly as: Server=tcp:yourserver.database.windows.net,1433;Database=yourdb;User ID=youruser;Password=yourpassword;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;. Example in appsettings.json: "DefaultConnection": "Server=tcp:myserver.database.windows.net,1433;Database=mydb;User ID=myuser;Password=mypassword;Encrypt=True;TrustServerCertificate=False;"** (95% success)
   ```
   Construct the connection string exactly as: Server=tcp:yourserver.database.windows.net,1433;Database=yourdb;User ID=youruser;Password=yourpassword;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;. Example in appsettings.json: "DefaultConnection": "Server=tcp:myserver.database.windows.net,1433;Database=mydb;User ID=myuser;Password=mypassword;Encrypt=True;TrustServerCertificate=False;"
   ```
2. **Use Azure SQL connection string builder in code. Example in C#: var builder = new SqlConnectionStringBuilder { DataSource = "tcp:myserver.database.windows.net,1433", InitialCatalog = "mydb", UserID = "myuser", Password = "mypassword", Encrypt = true, TrustServerCertificate = false }; var connectionString = builder.ConnectionString;** (90% success)
   ```
   Use Azure SQL connection string builder in code. Example in C#: var builder = new SqlConnectionStringBuilder { DataSource = "tcp:myserver.database.windows.net,1433", InitialCatalog = "mydb", UserID = "myuser", Password = "mypassword", Encrypt = true, TrustServerCertificate = false }; var connectionString = builder.ConnectionString;
   ```

## Dead Ends

- **** — JSON requires proper string escaping; trailing semicolons or line breaks break parsing. The runtime expects a single line string. (80% fail)
- **** — Azure SQL requires the 'tcp:' prefix for the server name to enforce TCP/IP connection; omitting it causes format rejection. (70% fail)
