I am trying to execute an SQL query at runtime:
SqlConnection connection = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = "SELECT * FROM dbo.Books_in_Storage WHERE author = 'myself'";
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = connection;
connection.Open();
reader = cmd.ExecuteReader();
connection.Close();
Execution reaches reader = cmd.ExecuteReader(); and gives me the error:
Invalid object name
dbo.Books in Storage.
If I look at my SQL Server Object Explorer, I can see that dbo.Books in Storage is present:

Why is this happening?
Books in StorageandBooks_in_Storageare not the same. Preferably, rename the table not to use spaces.