我正在尝试使用ADO.NET执行存储过程。存储过程的UDT类型参数很少。我正在使用下面的代码调用存储的proc和传递参数,但看起来传递给proc的值不是我传递的值,而是该类型的默认值。
using (SqlCommand cmd = new SqlCommand(procName, _conn))
{
if (input != null)
{
foreach (Parameter inputPair in input)
{
SqlParameter sp = new SqlParameter("@" + inputPair.Name, inputPair.Type);
sp.Value = inputPair.Value;
sp.Direction = System.Data.ParameterDirection.Input;
if (!string.IsNullOrEmpty(inputPair.UdtTypeName))
{
sp.SqlDbType = SqlDbType.Udt;
sp.UdtTypeName = inputPair.UdtTypeName;
}
if (0 != inputPair.Size)
{
sp.Size = inputPair.Size;
}
cmd.Parameters.Add(sp);
}
}
非常感谢任何指针。