MVC4列出数据库中的可用表

时间:2014-06-20 17:10:43

标签: c# sql asp.net-mvc entity-framework asp.net-mvc-4

我需要使用ASP.NET MVC4 Framework来构建一个数据管理工具,该工具将对用户提供的数据执行查询。由于数据将由用户提供,因此表的模式每次都会不同,因此在对数据库执行查询之前,表的模型将是未知的,数据库将显示数据库中的表列表和表已被选中。

为了实现目标,我想简单地从使用连接字符串连接到数据库并执行列出数据库中所有可用表的查询并将该列表传递给View开始。

到目前为止,根据我所做的研究,我提出了以下代码:

/*Inside the model*/
public class DbTablesContext : DbContext
{
    public DbTablesContext(string connectionstring) : base(connectionstring)
    {
    }
}

/*Inside the controller*/ 
   public ActionResult Index()
        {
            string constring= ConnectionString();
            List<string> data = new List<string>();

            DbTablesContext db = new DbTablesContext(constring);

            db.Database.Connection.Open();
            db.Database.SqlQuery(typeof(List<string>), "select * from sys.tables", data);
            db.Database.Connection.Close();

            ViewData["data"] = data;


            return View();
        }

        public string ConnectionString()
        {
            SqlConnectionStringBuilder sqlbuild = new SqlConnectionStringBuilder();

            sqlbuild.DataSource = "(LocalDB)\\v11.0";
            sqlbuild.InitialCatalog = "playDB";

            return sqlbuild.ConnectionString;
        }

/*Inside the view */  
@{
    ViewBag.Title = "Index";
}

@{

    //foreach loop for @ViewData["data"]
    //Since the list returns empty, I'm unsure how the for-each loop will work.
}

当我构建并运行此代码时,我没有得到任何错误,但是,当我访问视图页面时,我得到一个空白页面,我相信是因为没有发生在我传递给SqlQuery()的列表中。我对.NET,MVC和实体框架相当新,因此我不确定为什么会出现这种情况。

我们非常感谢您提供的任何帮助或指导。如果我让任何人感到困惑,我也会提前道歉。

1 个答案:

答案 0 :(得分:0)

坚持模式:MVC。 创建您自己的数据库(或数据存储)。

制作模型,控制器和视图:

  • /型号

    • 数据库//名称,连接,类型等等。
    • 表//数据库,列,
    • 列//类型,值。
    • 查询//可以存储查询,以便用户可以重复查询?
  • /控制器

    • ConnectionController //在这里你可以输入你拥有的代码。

    • QueryController

  • /浏览次数

    • /连接/数据库
    • /查询/生成器

......在我看来。