Решение для отсутствия сопоставления существует из объекта типа system.collections.generic.list при передаче таблично значимого параметра в процедуре хранения
Это два файла класса
public class Salary { . . . public List<TripAllowanceDT> tripAllowancedt { get; set; } } public class TripAllowanceDT { public int id { get; set; } public string BookingNumber { get; set; } public int NewBookingId { get; set; } public string TripAllowance { get; set; } public DateTime MultidayFromDate { get; set; } public int EmployeeId { get; set; } }
Это код для вызова хранимой процедуры
SqlConnection conn = new SqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["DBConnect"].ConnectionString; conn.Open(); SqlCommand sc = new SqlCommand("SP", conn); sc.Parameters.AddWithValue("AllowanceDT", EmployeeSalary.tripAllowancedt); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(sc); sc.CommandType = CommandType.StoredProcedure; da.Fill(dt);
Что я уже пробовал:
Я попробовал другой метод, и он там работает, я отладил код и проверил значения в нем с помощью типа данных. И все это прекрасно.
Я также удалил код для табличного параметра из хранимой процедуры.
Я просто заявил Я.е
@AllowanceDT TableType_UpdateAllowance ReadOnly