更正使用表值函数的选择查询的参数类型

时间:2015-11-24 08:40:44

标签: c# sql-server-2012 visual-studio-2015 strongly-typed-dataset

我的SQL Server 2012包含一个函数Get_Schedule

CREATE FUNCTION Get_Schedule(
    @pProject_Id   AS INT,
    @pPeriod_Start AS DATETIME2,
    @pPeriod_End   AS DATETIME2)
RETURNS TABLE
WITH SCHEMABINDING
AS
    RETURN (
        SELECT
            42     AS Val1,
            'Foo'  AS Val2);

Visual Studio 2015的SQL Server对象资源管理器显示具有所定义类型的函数参数。

但是,当将函数拖动到强类型数据集设计器时,DATETIME2参数将更改为ANSISTRING而不是System.DateTimeSystem.Data.SqlDbType.DateTime2

int参数,@pProject_Id 具有正确的类型。

当使用表适配器的select语句访问数据库时以及创建新的存储过程时都会发生这种情况(过程本身确实具有预期的DATATIME2作为参数,但生成的表适配器具有{{1 }})。

如何在生成的表适配器中使用正确的参数类型?

1 个答案:

答案 0 :(得分:1)

添加查询及其表适配器后:

  • 打开表适配器的属性;
  • 展开ansistring;和,
  • 编辑SelectCommand正确的类型。