Lobster Thermidor aux crevettes with a Mornay sauce, served in a Provençale manner with shallots and aubergines, garnished with truffle pate, brandy and a fried egg on top and Spam - Monty Python Spam Sketch
If you are only worried about your connection string, you can just use an encrypted section in the .config file.
Anyways, connecting to a SQL server directly is not secure. Traffic is not encrypted and anybody with a sniffer can see everything. You should instead connect to a TCP/IP server (that you write, obviously) using SSL that proxys the database calls. That way, you don't have the connection string in your app, but you are still going to have the server info in your app, so... The DB proxy method has additional benefits since it also allows you to compress data. SQL does not. A bit more work though...
Depends on the data & scenario. I.e. compressing small data will actually result in the "compressed" data being larger then the original. Then there is the overhead in compressing & decompressing on the fly, or storing the data in compressed format. Honestly, usually its not worth the hassle if your queries are optimized. Compressing 1MB down to 250KB isn't going to make a difference in the real world.