如何在使用C#IDataReader时将表类型参数发送到T-SQL?

Ela*_*nda 3 .net c# t-sql ado.net sqldatatypes

我写了一个t-sql sp,它将一个表作为参数.

我试图从c#调用它,但不知道使用什么类型:

database.AddInParameter(command, "@ID", DbType.String, id);
database.AddInParameter(command, "@TemplatesIds", DbType.WhatType??, dt);

using (IDataReader reader = database.ExecuteReader(command))
{
    while (reader.Read())
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么用?

Pre*_*gha 5

因为你正在使用t-sql然后你可以使用SqlDbType.Structured如果你在你的(我猜)IDbCommand下使用SQLCommand

var dt = new DataTable();
... set up dt ...
par = new SqlParameter("@TemplatesIds", SqlDbType.Structured, dt)
Run Code Online (Sandbox Code Playgroud)

在msdn上有很多使用它的例子.

  • 我不得不做`par = new SqlParameter("@ TemplatesIds",SqlDbType.Structured){Value = dt};`. (2认同)