diff --git a/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs b/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs
index 34368f2f145..8a3e3a041c6 100644
--- a/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs
+++ b/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs
@@ -102,7 +102,7 @@ public override string CommandText
if (value != _commandText)
{
DisposePreparedStatements();
- _commandText = value;
+ _commandText = value ?? string.Empty;
}
}
}
diff --git a/src/Microsoft.Data.Sqlite.Core/SqliteConnection.cs b/src/Microsoft.Data.Sqlite.Core/SqliteConnection.cs
index 206dfe218bb..410f39dfdc1 100644
--- a/src/Microsoft.Data.Sqlite.Core/SqliteConnection.cs
+++ b/src/Microsoft.Data.Sqlite.Core/SqliteConnection.cs
@@ -36,7 +36,7 @@ public partial class SqliteConnection : DbConnection
private HashSet<(string file, string proc)> _extensions;
- private string _connectionString;
+ private string _connectionString = string.Empty;
private ConnectionState _state;
private sqlite3 _db;
private bool _extensionsEnabled;
@@ -84,7 +84,7 @@ public override string ConnectionString
throw new InvalidOperationException(Resources.ConnectionStringRequiresClosedConnection);
}
- _connectionString = value;
+ _connectionString = value ?? string.Empty;
ConnectionOptions = new SqliteConnectionStringBuilder(value);
}
}
@@ -164,7 +164,7 @@ public override void Open()
return;
}
- if (ConnectionString == null)
+ if (string.IsNullOrEmpty(ConnectionString))
{
throw new InvalidOperationException(Resources.OpenRequiresSetConnectionString);
}
diff --git a/src/Microsoft.Data.Sqlite.Core/SqliteParameter.cs b/src/Microsoft.Data.Sqlite.Core/SqliteParameter.cs
index 3f0ef48ab39..9837dfef4ad 100644
--- a/src/Microsoft.Data.Sqlite.Core/SqliteParameter.cs
+++ b/src/Microsoft.Data.Sqlite.Core/SqliteParameter.cs
@@ -18,9 +18,11 @@ namespace Microsoft.Data.Sqlite
/// Data Types
public class SqliteParameter : DbParameter
{
+ private string _parameterName = string.Empty;
private object _value;
private int? _size;
private SqliteType? _sqliteType;
+ private string _sourceColumn = string.Empty;
///
/// Initializes a new instance of the class.
@@ -122,7 +124,11 @@ public override ParameterDirection Direction
/// Gets or sets the name of the parameter.
///
/// The name of the parameter.
- public override string ParameterName { get; set; } = string.Empty;
+ public override string ParameterName
+ {
+ get => _parameterName;
+ set => _parameterName = value ?? String.Empty;
+ }
///
/// Gets or sets the maximum size, in bytes, of the parameter.
@@ -154,7 +160,11 @@ public override int Size
/// Gets or sets the source column used for loading the value.
///
/// The source column used for loading the value.
- public override string SourceColumn { get; set; } = string.Empty;
+ public override string SourceColumn
+ {
+ get => _sourceColumn;
+ set => _sourceColumn = value ?? string.Empty;
+ }
///
/// Gets or sets a value indicating whether the source column is nullable.
diff --git a/test/Microsoft.Data.Sqlite.Tests/SqliteCommandTest.cs b/test/Microsoft.Data.Sqlite.Tests/SqliteCommandTest.cs
index f1ada438734..8daec2a1619 100644
--- a/test/Microsoft.Data.Sqlite.Tests/SqliteCommandTest.cs
+++ b/test/Microsoft.Data.Sqlite.Tests/SqliteCommandTest.cs
@@ -43,6 +43,17 @@ public void CommandText_defaults_to_empty()
Assert.Empty(command.CommandText);
}
+ [Fact]
+ public void CommandText_coalesces_to_empty()
+ {
+ var command = new SqliteCommand
+ {
+ CommandText = null
+ };
+
+ Assert.Empty(command.CommandText);
+ }
+
[Fact]
public void CommandText_throws_when_set_when_open_reader()
{
diff --git a/test/Microsoft.Data.Sqlite.Tests/SqliteConnectionStringBuilderTest.cs b/test/Microsoft.Data.Sqlite.Tests/SqliteConnectionStringBuilderTest.cs
index cad9b0b6e84..b52bfbb4bdd 100644
--- a/test/Microsoft.Data.Sqlite.Tests/SqliteConnectionStringBuilderTest.cs
+++ b/test/Microsoft.Data.Sqlite.Tests/SqliteConnectionStringBuilderTest.cs
@@ -33,6 +33,25 @@ public void Ctor_parses_mode()
Assert.Equal(SqliteOpenMode.Memory, builder.Mode);
}
+ [Fact]
+ public void ConnectionString_defaults_to_empty()
+ {
+ var builder = new SqliteConnectionStringBuilder();
+
+ Assert.Empty(builder.ConnectionString);
+ }
+
+ [Fact]
+ public void ConnectionString_coalesces_to_empty()
+ {
+ var builder = new SqliteConnectionStringBuilder
+ {
+ ConnectionString = null
+ };
+
+ Assert.Empty(builder.ConnectionString);
+ }
+
[Fact]
public void Filename_is_alias_for_DataSource()
{
diff --git a/test/Microsoft.Data.Sqlite.Tests/SqliteConnectionTest.cs b/test/Microsoft.Data.Sqlite.Tests/SqliteConnectionTest.cs
index 6b52947b996..9785e440f04 100644
--- a/test/Microsoft.Data.Sqlite.Tests/SqliteConnectionTest.cs
+++ b/test/Microsoft.Data.Sqlite.Tests/SqliteConnectionTest.cs
@@ -27,6 +27,25 @@ public void Ctor_sets_connection_string()
Assert.Equal(connectionString, connection.ConnectionString);
}
+ [Fact]
+ public void ConnectionString_defaults_to_empty()
+ {
+ var connection = new SqliteConnection();
+
+ Assert.Empty(connection.ConnectionString);
+ }
+
+ [Fact]
+ public void ConnectionString_coalesces_to_empty()
+ {
+ var connection = new SqliteConnection
+ {
+ ConnectionString = null
+ };
+
+ Assert.Empty(connection.ConnectionString);
+ }
+
[Fact]
public void ConnectionString_setter_throws_when_open()
{
diff --git a/test/Microsoft.Data.Sqlite.Tests/SqliteParameterTest.cs b/test/Microsoft.Data.Sqlite.Tests/SqliteParameterTest.cs
index 9ddca04ec3f..7faa2b540fb 100644
--- a/test/Microsoft.Data.Sqlite.Tests/SqliteParameterTest.cs
+++ b/test/Microsoft.Data.Sqlite.Tests/SqliteParameterTest.cs
@@ -32,6 +32,44 @@ public void Ctor_sets_other_values()
Assert.Equal("Column", result.SourceColumn);
}
+ [Fact]
+ public void ParameterName_defaults_to_empty()
+ {
+ var parameter = new SqliteParameter();
+
+ Assert.Empty(parameter.ParameterName);
+ }
+
+ [Fact]
+ public void ParameterName_coalesces_to_empty()
+ {
+ var parameter = new SqliteParameter
+ {
+ ParameterName = null
+ };
+
+ Assert.Empty(parameter.ParameterName);
+ }
+
+ [Fact]
+ public void SourceColumn_defaults_to_empty()
+ {
+ var parameter = new SqliteParameter();
+
+ Assert.Empty(parameter.SourceColumn);
+ }
+
+ [Fact]
+ public void SourceColumn_coalesces_to_empty()
+ {
+ var parameter = new SqliteParameter
+ {
+ SourceColumn = null
+ };
+
+ Assert.Empty(parameter.SourceColumn);
+ }
+
[Fact]
public void DbType_defaults_to_string()
{