【问题标题】:Display the columns of a SQL Server table in ASP.net MVC C#在 ASP.net MVC C# 中显示 SQL Server 表的列
【发布时间】:2017-02-24 06:21:14
【问题描述】:

我一直在通过谷歌可以提供给我的每一页寻找这个问题的解决方案,但我找不到可以解决它的确切页面。

我认为解决方案会很简单,但我不是 C# 和 ASP.NET MVC 专家,但从事 Web 开发有一段时间了。

情况:我有一个数据库。

  • 表名:MyData
  • 列名:ID、名称、字段和定义,我在每列下都有一些值。

我使用 ADO.Net 实体数据模型连接我现有的数据库,这些模型位于 .edmx / .tt 文件夹下。

public partial class MyData
{
    public MyData(){ }

    public int ID { get; set; }
    public string Name { get; set; }
    public string Field { get; set; }
    public string Definition { get; set; }
}

然后我添加一个带有视图的 MVC5 控制器,使用指向我刚刚从数据库生成的模型的 EF。

namespace Mytest1.Controllers
{
    public class MyDataController : Controller
    {
        private MyDatadb db = new MyDataEntities();

        // GET: MyData
        public ActionResult Index()
        {
            return View(db.MyData.ToList());
        }
        ...

然后我右键创建Index的视图,Edit, Create....下面是Index:

@model IEnumerable<Mytest1.MyData>

@{
    ViewBag.Title = "MyData";
}

<h2>MyData</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>  
<table class="table">
    <tr>

        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Field)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Definition)
        </th>

    </tr>

@foreach (var item in Model) {...

现在我可以在每列下显示值,并且网页通过处理索引视图为我提供表格。

所以问题是,我不想展示这些价值观。我希望网页显示该数据库的上层信息。所以我想要一个表,第一行是MyData,下面的其余行是ID、名称、字段和定义。就这么简单。但我不知道该怎么做。

我正在考虑的是在当前模型中添加这个

    public class showColumn : MyData{
    // 1. retrieve how many columns are in MyData
    // 2. Return the values of those columns that have counted in step 1 
}

然后我在 Index.cshtml 中创建一个新表说:

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.showColumn)
        </th>

    </tr>

这种想法是否是实现此解决方案的一种可能方式?或者如果有人能给我一个更好的方法来解决它,我将非常感激!

【问题讨论】:

  • 能否请您在绘画中模仿您想要的内容并将其添加到问题中。我发现很难弄清楚你想做什么。完成后请发表评论,以便我收到通知。另外(我会为你做,但我是编辑的 90 代表!!!)我建议在这个问题中添加 asp.net-mvc 标记,因为大多数窥视者在回答问题时都会寻找它。
  • 所以基本上上面的那些代码块只是在描述我的问题。如果您认为我编写的伪代码(public class showColumn : MyData{ // 1. 检索 MyData 中有多少列 // 2. 返回在步骤 1 中计算过的那些列的值 })是解决此问题的一种可能方法问题,那么我的问题是如何将伪代码变为真实代码。

标签: c# sql-server-2008 asp.net-mvc-5 html-table


【解决方案1】:

您可以使用 sys.tables 和 sys.columns 。 只需在这些表上写一个选择语句

select * from sys.tables
select * from sys.columns

【讨论】:

  • 是的,这是一种可能的方式,但我想使用 C# 来实现它。我正在考虑使用 foreach 循环来实际计算该表中有多少列,然后返回这些列的值。
  • 我计划注入原始 sql 查询来实现这一点。我需要把这个查询放在模型还是控制器中?
  • 尝试在控制器中执行操作。并将类保留在模型中
猜你喜欢
  • 2019-07-23
  • 1970-01-01
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多