SqlConnectionStringBuilder.Remove(String) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Removes the entry with the specified key from the SqlConnectionStringBuilder instance.
public:
override bool Remove(System::String ^ keyword);
public override bool Remove (string keyword);
override this.Remove : string -> bool
Public Overrides Function Remove (keyword As String) As Boolean
Parameters
- keyword
- String
The key of the key/value pair to be removed from the connection string in this SqlConnectionStringBuilder.
Returns
true
if the key existed within the connection string and was removed; false
if the key did not exist.
Exceptions
keyword
is null (Nothing
in Visual Basic)
Examples
The following example converts an existing connection string from using SQL Server Authentication to Windows Authentication (integrated security). The example works by removing the user name and password from the connection string, and then setting the IntegratedSecurity property of the SqlConnectionStringBuilder object.
Warning
Microsoft does not recommend providing your user name and password directly, because it's an insecure pattern. Where possible, use more secure authentication flows, such as Managed Identities for Azure resources, or Windows authentication for SQL Server.
using System.Data.SqlClient;
class Program
{
static void Main()
{
try
{
string connectString =
"Data Source=(local);User ID=ab;Password=myPassw0rd;" +
"Initial Catalog=AdventureWorks";
SqlConnectionStringBuilder builder = new(connectString);
Console.WriteLine($"Original: {builder.ConnectionString}");
// Remove the User ID and Password.
builder.Remove("User ID");
builder.Remove("Password");
// Enable integrated security.
builder.IntegratedSecurity = true;
Console.WriteLine($"Modified: {builder.ConnectionString}");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
/* This code example produces the following output:
* Original: Data Source=(local);Initial Catalog=AdventureWorks;User ID=ab;Password=myPassw0rd
* Modified: Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True
*/
Dim connectString As String =
"Data Source=(local);User ID=ab;Password=a1Pass@@11;" &
"Initial Catalog=AdventureWorks"
Dim builder As New SqlConnectionStringBuilder(connectString)
Console.WriteLine("Original: " & builder.ConnectionString)
' Remove the user ID and password.
builder.Remove("User ID")
builder.Remove("Password")
' Turn on integrated security:
builder.IntegratedSecurity = True
Console.WriteLine("Modified: " & builder.ConnectionString)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
' This code produces the following output:
' Original: Data Source=(local);Initial Catalog=AdventureWorks;User ID=ab;Password=a1Pass@@11
' Modified: Data Source = (local);Initial Catalog=AdventureWorks;Integrated Security=True
Remarks
Because the Remove method returns a value that indicates its success, it is not required to look for a key before trying to remove the key/value pair from the SqlConnectionStringBuilder instance. Because the SqlConnectionStringBuilder maintains a fixed-size collection of key/value pairs, calling the Remove method simply resets the value of the key/value pair back to its default value.
Because the collection of keys supported by the SqlConnectionStringBuilder is fixed, every item within the collection has a known default value. The following table lists the keys, and the value for each when the SqlConnectionStringBuilder is first initialized, or after the Remove method has been called.
Key | Default value |
---|---|
Application Name | ".Net SqlClient Data Provider" |
Asynchronous Processing | False |
AttachDBFilename | Empty string |
Connection Timeout | 15 |
Context Connection | False |
Current Language | Empty string |
Data Source | Empty string |
Encrypt | False |
Enlist | True |
Failover Partner | Empty string |
Initial Catalog | Empty string |
Integrated Security | False |
Load Balance Timeout | 0 |
Max Pool Size | 100 |
Min Pool Size | 0 |
MultipleActiveResultSets | False |
Network Library | Empty string |
Packet Size | 8000 |
Password | Empty string |
Persist Security Info | False |
Pooling | True |
Replication | False |
Transaction Binding | Implicit Unbind |
User ID | Empty string |
User Instance | False |
Workstation ID | Empty string |