次のエラーの理由を知りたいです。お役に立てれば幸いです。
エラーは次のとおりです。
Procedure or function 'Sp_Informacion_gral_Cliente' expects parameter '@Cod_Medico', which was not supplied.
ブラウザに入力した URL:
http://localhost:2731/Api/Usuario/0000986
ApiAreaRegistration の MapRoute:
context.MapRoute(
"DetailClientes",
"Api/Usuario/{Detail}",
new
{
controller = "Usuario",
action = "Detail"
}
);
コントローラーの方法:
[HttpGet]
public JsonResult Detail(string codigo)
{
return Json(clientesManager.ObtenerClienteDetallado(codigo),
JsonRequestBehavior.AllowGet);
}
そして、おそらくエラーが発生する方法:
public List<ClienteDetallado> ObtenerClienteDetallado(string cliente)
{
List<ClienteDetallado> lista = new List<ClienteDetallado>();
SqlConnection con = new SqlConnection(cadenaConexionVM);
con.Open();
SqlCommand cmd = new SqlCommand("Sp_Informacion_gral_Cliente", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Cod_Medico", SqlDbType.NChar).Value = cliente;
SqlDataReader reader =
cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
while (reader.Read())
{
ClienteDetallado cli = new ClienteDetallado();
cli = new ClienteDetallado();
cli.Cod_Medico = reader.GetInt32(0);
cli.Nombre = reader.GetString(1);
cli.Apellido = reader.GetString(3);
cli.Fecha_Nacimiento = reader.GetString(4);
cli.Lugar_Nacimiento= reader.GetString(5);
cli.celular= reader.GetString(6);
cli.tel_ofic= reader.GetString(7);
cli.Estilo_De_Conducta = reader.GetString(8);
cli.pasatiempos= reader.GetString(9);
cli.Membresías_Grupos_Asc= reader.GetString(10);
cli.Especialidad= reader.GetString(11);
cli.Facultad_Medicina= reader.GetString(12);
cli.Lugar_Donde_Obtuvo_Especialidad= reader.GetString(13);
cli.Tiempo_Ejerciendo_Especialidad= reader.GetString(14);
cli.Lugar_Donde_Labora = reader.GetString(15);
cli.Direccion_CS_Labora= reader.GetString(16);
cli.Direccion_Consultorio = reader.GetString(17);
cli.Horario_Labor= reader.GetString(18);
cli.Lugar_prefiere_recibir_Visitadores_Médicos= reader.GetString(19);
cli.Productos_que_Receta_actualmente= reader.GetString(20);
cli.Potencial_de_receta_actual= reader.GetString(21);
cli.Costo_Promedio_Consulta= reader.GetString(22);
lista.Add(cli);
}
reader.Close();
return lista;
}