如何将SqlDbType.udt传递给存储过程?

时间:2015-09-29 12:12:36

标签: c# sql-server ado.net user-defined-types

我正在尝试使用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);
                }
            }

非常感谢任何指针。

0 个答案:

没有答案