繁体   English   中英

DataTable和表值参数不返回任何行

[英]DataTable and Table-Valued Parameter returning no rows

我有一个用户定义的表和一个存储过程:

 CREATE TYPE [dbo].[int_list_tbltype] AS TABLE(
[ID] INT  NULL
 )
 GO

 CREATE PROCEDURE [dbo].[GetList]

 @Status dbo.int_list_tbltype READONLY

 SELECT v.Status, v.Item
 FROM myView v  
 INNER JOIN @Status tvp ON v.Status = tvp.ID

和C#代码:

        DataTable dt = new DataTable();
        SqlDataAdapter sqlAdtp = new SqlDataAdapter();            
        SqlConnection conn = new SqlConnection(ConnString);
        SqlCommand cmd = new SqlCommand("GetList", conn);

        //Create a table just for testing
        DataTable _dt = new DataTable();
        _dt.Columns.Add("ID", typeof(int));
        _dt.Rows.Add(1);
        _dt.Rows.Add(2);

        SqlParameter param = new SqlParameter();
        param.ParameterName = "@Status";
        param.SqlDbType = System.Data.SqlDbType.Structured;
        param.Value = _dt;
        param.TypeName = "dbo.int_list_tbltype";
        cmd.Parameters.Add(param); 

        sqlAdtp.SelectCommand = cmd;
        sqlAdtp.Fill(dt);

我已经在单独的查询窗口中对sql进行了测试,并向TVP添加了值,并且按预期返回了几百行。
但是,当我尝试将参数传递到存储过程时,我将获得一个空的数据表。

谁能看到它出故障的地方?

谢谢!

当然,花些时间发布问题,答案会突然出现在我眼前。

我忘了这一简单的话:

 cmd.CommandType = CommandType.StoredProcedure;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM