-1

净 mvc c#. 我已经为视图创建了模型。我可以从表中接收所有行但是当我尝试在方法中传递值时返回列表不起作用这是我的代码
控制器类

public ActionResult Index()
{
    TechnicianDBO db = new TechnicianDBO();
    List<Technician> technicians = db.technicians.ToList();
    return View(technicians);
}

[HttpPost]
public ActionResult Index(int Postcode)
{
    TechnicianDBO db = new TechnicianDBO();
    List<Technician> technicians = db.Jobtechnicians(Postcode).ToList();
    return View(technicians);
}

数据库类

public IEnumerable<Technician> Jobtechnicians(int postcode)
{
    string connectionString = ConfigurationManager.ConnectionStrings["testConnect"].ConnectionString;
    List<Technician> Jobtechnicians = new List<Technician>();
    using (SqlConnection con = new SqlConnection(connectionString))
    {
        SqlCommand cmd = new SqlCommand("spGetTechnicianByPostcode", con);
        con.Open();
        SqlParameter paramId = new SqlParameter();
        paramId.ParameterName = "@postcode";
        paramId.Value = postcode;
        cmd.Parameters.Add(paramId);
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            Technician technician = new Technician();
            technician.Id = Convert.ToInt32(dr["techId"]);
            // technician.Username = dr["techUsername"].ToString();
            technician.Firstname = dr["techFirstname"].ToString();
            technician.Lastname = dr["techLastname"].ToString();
            technician.LandlineNo = dr["landlineNo"].ToString();
            technician.MobileNo = dr["mobileNo"].ToString();
            technician.Address1 = dr["address1"].ToString();
            technician.Address2 = dr["address2"].ToString();
            technician.Postcode = Convert.ToInt32(dr["postcode"]);
            technician.Email = dr["email"].ToString();
            technician.Fax = dr["fax"].ToString();
            technician.Profession = Convert.ToInt32(dr["ProfessionId"]);
            Jobtechnicians.Add(technician);
        }

        return Jobtechnicians;
    }
}
4

1 回答 1

0

你需要给CommandType

SqlCommand cmd = new SqlCommand("spGetTechnicianByPostcode", con);
cmd.CommandType = CommandType.StoredProcedure;

并且当您打电话给.ToString()您时,最好检查该列值是否为空,如果该列在您的表中允许为空

于 2013-09-15T06:37:34.487 回答