【发布时间】:2021-04-07 07:13:11
【问题描述】:
我需要从外部 SQL Server 数据库中检索数据并在我的 ASP.NET MVC 应用程序中查看(而不是存储它)。我可以连接到服务器的唯一方法是使用服务器名称、端口号和访问服务器所有者提供的 SQL Server 存储过程。
目前我知道如何做到这一点的唯一方法是:
a) 编写.sql 脚本来检索数据。注意我看不到任何 SQL Server 表,我只有存储过程的名称和条件。我将结果保存为.txt 文件
EXEC dbo.listData @Criteria = '<Portal><Data Name="Data" Format="Narrow" Interval="5m">
<Where>
<Column Name="Point" Project="XXX" Value="XXXX" Operator="LIKE" />
<Column Name="Point" Project="YYY" Value="YYYY" Operator="LIKE" />
</Where>
</Data>
</Portal>'
, @StartDateTime = '12/28/2020',
@EndDateTime = '12/29/2020'
b)创建模型类
public class Alarm_DataModel
{
public string Project { get; set; }
public string Point { get; set; }
}
c) 创建一个控制器将数据放入模型中以传递给视图
public ActionResult Index()
{
string[] texts = System.IO.File.ReadAllLines(Server.MapPath("~/App_Data/Test/test.txt"));
texts = texts.Skip(2).ToArray();
List<Alarm_DataModel> Alarm_Data = new List<Alarm_DataModel>();
foreach (string row in texts)
{
if (!string.IsNullOrEmpty(row))
{
int x = row.Length;
Alarm_Data.Add(new Alarm_DataModel
{
Project = row.Substring(0, 25),
Point = row.Substring(26, 60), 6
});
}
}
ViewBag.Data = texts;
return View(Alarm_Data);
}
我的问题可能已经回答了很多次了,但我已经看过但找不到任何我能解释的东西。
有没有一种方法可以使用我的控制器获取数据,而不必依赖正在运行的 .sql 脚本并生成 .txt 文件?
由于我对数据库的访问受限,使用提供的存储过程进行查询并填充我的模型以传递给视图的最佳方法是什么?
【问题讨论】:
-
每个人在访问 sql-server 时都被“限制”为
a server name, port number?那么你如何执行 1) - 执行你的.sql脚本文件? -
看看 Dapper 项目,对你有帮助:learndapper.com/stored-procedures
-
也许我没有很好地解释自己,当我说受限时,我的意思是当我登录服务器时,我看不到表,甚至看不到我正在提取的数据的架构。我实际上也看不到存储过程,我只是使用它。我不能编辑存储过程或添加另一个,我只是有权使用它。我会看看 Dapper 项目,看看它是否有帮助,谢谢。
标签: sql sql-server asp.net-mvc stored-procedures