我有一个存储过程,它接受用户定义的表类型,并且用户定义数据类型中所有列的默认值设置为 null。现在我将一个包含较少列的数据表从 c# 代码传递给存储过程,期望剩余列的值将设置为空。
但我收到此错误:尝试传递具有 21 列的表值参数,其中相应的用户定义表类型需要 77 列。这是代码
SqlConnection conn = new SqlConnection("server=****; database=***;integrated security=SSPI");
DataSet dataset=new DataSet();
conn.Open();
SqlCommand cmd = new SqlCommand("Insert");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn;
SqlParameter para = new SqlParameter();
para.ParameterName = "@TableVar";
para.SqlDbType = SqlDbType.Structured;
//SqlParameter para=cmd.Parameters.AddWithValue("@TableVar",table);
para.Value = table;
cmd.Parameters.Add(para);
cmd.ExecuteNonQuery();