2014-02-19 43 views
0

我正在使用存儲過程來訪問asp.net視圖中的字段,我將db列放在HTML表中,除了一個字段'NetSalary'外,它是工作的。它不能被訪問,它說模型不包含它。我嘗試了很多方法,但無法工作。從dataabse訪問字段,但不可見

ALTER PROCEDURE [dbo].[GetMonthlyReport] @emplID INT = NULL, 
    @month VARCHAR(50) = NULL, @BasicSalary int = null out ,@BSalaryHour int= Null out 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    IF (@emplID IS NOT NULL AND @month IS NOT NULL) --If Block begins 
    BEGIN 
     SELECT * 
     FROM MonthlyRecord 
     WHERE Month = @month AND EmplID = @emplID 

     --------------------------------------------------------------- 
     Declare @StartDate Date, @EndDate Date, @mydate date, @TotalDays int, @TotalHours int 

     Set @mydate = GETUTCDATE() 
     Set @StartDate = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101)) 
     Set @EndDate = (SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101)) 
     Set @TotalDays =((DATEDIFF(dd, @StartDate, @EndDate) + 1) 
      -(DATEDIFF(wk, @StartDate, @EndDate) * 1) 
      -(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)) 
     Set @TotalHours = (@TotalDays * 8) 
     Set @BasicSalary = (Select BasicSalary from HrEmployee where [email protected]) 
     Set @BSalaryHour = @BasicSalary/@TotalHours 
     Select @BasicSalary as NetSalary, @BSalaryHour as SalaryPerHour 
     --------------------------------------------------------------- 

     Declare @No_Rows int 
     Select No_Rows= count(*) FROM MonthlyRecord 
     WHERE Month = @month AND EmplID = @emplID 
     Return @No_Rows 
    END --If block ends 
    ELSE --Else block begins 
    BEGIN 
     RETURN 0 
    END --Else block ends 
END 

控制器動作:

public ActionResult Generated_PaySlip(int? emplID, String month) 
{ 
    if (!String.IsNullOrEmpty(Session["Admin"] as string)) 
    { 
     int? basicSalary= 0; 
     int? BSalaryPerHour = 0; 
     IEnumerable<getmonthlyreportresult> PaySlip = DataContext.GetMonthlyReport(emplID, month, ref basicSalary, ref BSalaryPerHour).ToList(); 
     ViewBag.Month = Request.QueryString["Month"]; 
     //String NetSalary = DataContext.GetMonthlyReport(emplID, month).First() 
     ViewBag.Salary = basicSalary; 
     return View(PaySlip); 
    } 
    else 
    { 
     return RedirectToAction("IsAuth_Page", "Home"); 
    } 

查看:

@using EmployeeAttendance_app.Models 
@model IEnumerable<getmonthlyreportresult> 

@{ 

    var Item = Model.FirstOrDefault(); 
} 

<td> 
    Name 
</td> 
<td> 
    @Item.EmplName 
</td> 
<td> 
    Designation 
</td> 
<td> 
    @Item.DeptName 
</td> 

<tr style="border-removedsolid 3px black"> 
    <td>Total Working Time</td> 
    <td>@Item.OverallTime</td> 
    <td>Net Salary PKR</td> 
    <td>@Item.NetSalary</td> 
</tr> 
<table><tbody><tr> 
+0

你可以分享'getmonthlyreportresult'類的代碼嗎?我懷疑那個班有'NetSalary'屬性。 – ramiramilu

+0

包含al字段但不包含netsalary etcc – PreciseTech

+0

所以這就是問題所在,在該類中包含該字段,那麼錯誤將會消失。 – ramiramilu

回答