Is this correct way to setup DB Infrastructure with repository pattern and Dapper
Quick remarks:

Why do you convert a string to a string: Convert.ToString(ConfigurationManager.ConnectionStrings[&quot;MyDBConn&quot;].ConnectionString);? It's even called a ConnectionString.

Why do you use Dapper and then don't use it properly? Why return a DataSet? Why use SqlMapper and DynamicParameters? Why make life so hard for yourself when Dapper is making things so easy? Look at the homepage of Dapper Tutorial and Documentation:
 using (var conn = new SqlConnection(connectionString))
 {
     var invoices = conn.Query&lt;Invoice&gt;(sql);
 }

That is all you need. No endless checking of the state of your connection, no opening and closing it yourself, no try...finally blocks which completely ignore any exception that might occur. Write the correct query and let Dapper map the results to your class.