2012-08-14 77 views
0

我想知道什麼是以下錯誤的原因。如果你能提供幫助,我將不勝感激。預計沒有提供的參數

的錯誤是:

Procedure or function 'Sp_Informacion_gral_Cliente' expects parameter '@Cod_Medico', which was not supplied. 

我把瀏覽器的網址:

http://localhost:2731/Api/Usuario/0000986 

的圖路線在ApiAreaRegistration:

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; 
     } 

回答

0

嘗試匹配所預期的數據名字來匹配您的控制器。所以你的路線如下圖所示。

context.MapRoute(
      "DetailClientes", 
      "Api/Usuario/{codigo}", 
      new 
      { 
       controller = "Usuario", 
       action = "Detail" 
      } 
     ); 

您的存儲過程未從'string cliente'中獲取它預期存在的值。

+0

謝謝!它正在傳遞價值。現在,它的值只是一個968,但我在URL中傳遞了0000968。 – 2012-08-15 04:40:16

+0

它正在傳遞正確的值,但刪除了前導零。值是整數還是字符串?它會永遠是一定的長度嗎?前導零是否存在對它有影響嗎? – Matt 2012-08-15 08:21:11

相關問題