c# - ASP.NET MVC5 实现 SQL 查询工具
问题描述
我是 ASP.NET MVC5 的新手。
我想知道如何使用 MVC5 实现以下功能:
在 MVC5 中,我设计了一个文本区域,用户可以输入选择查询然后单击按钮执行选择功能并显示结果。但是,有多个目标数据库,这意味着不同的表具有不同的列数。(用户可能每次选择不同的表)
在开始使用 MVC5 之前,我做了一些类似的工作,例如:
1.在 Windows Form C# 中,我可以使用 DataSet 来存储来自多个表的结果并使用 DataGridView 对象显示结果
2.在 ASP.NET WebForm 中,我可以使用带有 <asp:GridView> 的 DataTable 来显示选择查询结果
现在,使用 ASP.NET MVC5 ,用户界面已经完成。
但是当我搜索如何使用 MVC5 显示结果时,所有参考都显示我必须在 models.cs 中声明数据类型然后调用它。但是我有这么多表,每个表都包含不同的列数。我卡住了。q_q
你能给我一些提示或关键字来找到我需要的确切信息吗?
谢谢大家。祝大家好。(如果我的陈述不能理解,请告诉我)
解决方案
昨天下午我找到了实现这个功能的方法,我成功地做到了。→ / MVC5 + ADO.NET /
我的问题是,我一开始无法设计模型(声明数据类型),因为该工具将用于查询多个 DataTable 和具有不同列数的每个 DataTable。(这可能是由于我对 EF 的了解较少。EF 是一项新技术为了我)
返回主题
(这可能不对)我在 Controller 中使用了 ADO.NET,在使用 DataSet 获取数据后,然后将值传递给 DataTable。并返回带有 DataTable 的视图。
DBDataAdapter da = new DBDataAdapter(UserInputSQLCommand, conn);
DataSet ds = new DataSet();
DataTable dt = new DataTable();
da.Fill(ds, "result");
dt = ds.Tables[0];
return View(dt);
仅在结果页面中添加以下代码(.cshtml 文件)
<table border="1" cellpadding="5">
<thead>
<tr>
@foreach (System.Data.DataColumn col in Model.Columns)
{
<th>@col.Caption</th>
}
</tr>
</thead>
<tbody>
@foreach (System.Data.DataRow row in Model.Rows)
{
<tr>
@foreach (var cell in row.ItemArray)
{
<td>@cell.ToString()</td>
}
</tr>
}
</tbody>
但我目前在同一查询页面上面临一些问题。所以我为结果信息创建了新页面,它确实有效。
我的新挑战是在我添加的 sql 查询视图中
@model MyProjectName.Models.SqlQueryView
Visual Studio 报告没有行和列的定义。
然后当我创建一个新视图并且没有使用 @model 但它可以工作。没有显示错误信息。我想知道行和列可能是系统定义但由于我使用@model 那么我需要声明它吗?
推荐阅读
- javascript - 加载公共网站并执行脚本
- java - 当我在另一个应用程序意图上调用 startIntent 时引发 SecurityException
- java - 房间在第二次插入手机磁盘上的数据库后停止插入
- c++ - 负载可以在获取操作下方滑动/存储可以在 C++ 中的发布上方滑动吗?
- php - 如何输出自定义的while循环php
- java - 为什么 Java 不能读取 UTF-8 文件中的这个 unicode 字符?
- javascript - 使用 Jackson 和 PrintWriter 的 JSON 输出
- php - 如何在没有运行时超过 30 秒错误的情况下循环遍历此嵌套数组
- sql - 除自定义工作日外的所有记录的总和日期差异
- python - Python使用字符串值作为类/代码的一部分