The first step is to identify what you want to do... and most important determine your SUT (Subject Under Test)
Is there any way to make con being the Mock WITHOUT changing the methods in any way?
I do not think you can do something like that and even if you could find a technical way to do it, it wouldn't be recommended. Instead you should have an abstraction of your DAL layer using a repository for example. Something like this:
interface IMyRepository
{
void Send(Bla bla);
}
And now you could use DI in your classes to inject a reference to this interface. When you want to write unit tests you should create a mock of the interface.
In order to create mocks easily I can recommend you the following tools:
Anyway in your case, the only way to test your code without changing your code would be changing the connection string to a dummy database, and run integration tests
Sadly I have to tell you that your code is not test-friendly, you should refactor your code to remove the static members.
The best tip I can tell you is: Read guidelines about writing clean test-friendly code.
Take a look at the following links:
It is good that you are interested in writing tests for your code, but since you didn't take a TDD, which means writing your tests first, you wrote your code without testability in mind, and the consequence is simple: writing tests will be a real PITA and writing them will require to refactor your code.
I understand you do not want to refactor your code, because you do not want to break existing functionality, and that's one of the greatest benefits of writing tests from the beginning, you would be able to refactor your code and run your tests to be sure you did not break anything