【问题标题】:Create a stored procedure which accepts list of datatime as a parameter创建一个接受日期时间列表作为参数的存储过程
【发布时间】:2020-03-27 06:26:42
【问题描述】:

我正在使用 SQL Server localdb ,EF 进行测试。

我想向存储过程发送一个名称、一个 ID 和一些日期时间来过滤我的表。

我可以创建一个接受List<DateTime> 作为参数的存储过程吗?如何从 C# 调用它?

CREATE PROCEDURE [dbo].[GetStudents]
    @id int = 0,
    @name varchar(50),
    @date  //date here accepts list of datetime?

【问题讨论】:

  • 要将等效的列表传递给存储过程,您需要table valued parameter。阅读文档,尝试一下,遇到困难时再发帖。
  • 那里有大量资源展示了如何从 C# 调用它。
  • @Dale K 谢谢,实际上,我使用 EF 从 asp.net mvc 调用存储过程,我想将 dateTime 列表作为一个参数传递给 sp,然后使用 @987654324 过滤数据库@...有可能吗?
  • Google 是您的朋友 - 使用 TVP 在 EF 上获得大量点击。

标签: sql asp.net sql-server


【解决方案1】:

使用此字段和 varchar(max),然后将逗号分隔的字符串传递给您的过程。

如果你在 sql server 中再次需要一个列表/表,那么你可以编写拆分函数..

https://www.aspsnippets.com/Articles/Split-and-convert-Comma-Separated-Delimited-String-to-Table-in-SQL-Server.aspx

【讨论】:

    猜你喜欢
    • 2021-09-11
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    • 2021-12-26
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多