The idea is that you define interfaces for your DAL and BLL. You then take an instance of such an interface as a constructor parameter. Example
interface IDatabase
{
// Methods here
}
Your BLL class:
public class Bll
{
IDatabase _db;
public Bll(IDatabase db)
{
_db = db;
}
public void SomeMethod()
{
// Use db here
}
}
Then in your composition root (in the web application) you use the kernel to configure these dependencies:
kernel.Bind<IDatabase>().To<ConcreteDatabase();
You need the same thing from your controllers to your BLL, but it works the same way.
Apart from that, I think your dependencies are not correctly set up. In general you don't want these vertical dependencies. You should aim for a flatter hierarchy. I wrote a blog post about this: http://www.kenneth-truyers.net/2013/05/12/the-n-layer-myth-and-basic-dependency-injection/
In my blog post I explain what the problem is with such a hierarchy and how you can avoid it. Apart from that, it describes exactly your problem: ASP.NET MVC, BLL, DLL and Ninject to tie it together.