2012-08-31 76 views
-7

我對着下面誤差「INT」不包含定義和沒有擴展方法

「INT」不包含關於「LeaveType」和沒有擴展方法「LeaveType」接受類型的第一個參數定義「詮釋」可以找到(是否缺少using指令或程序集引用?)

這裏是我的代碼:

public DataSet GetLeaveRecord(int empID) 
{ 
    DataSet ds = new DataSet(); 
    try 
    { 
     SqlCommand cmd = new SqlCommand("[p_GetLeaveRecord_LMS]", conn); 
     cmd.CommandType = CommandType.StoredProcedure; 
     SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
     cmd.Parameters.AddWithValue("@LeaveType", empID.LeaveType); 
     cmd.Parameters.AddWithValue("@IdEmployee", empID.EmployeeId); 
     cmd.Parameters.AddWithValue("@DateFrom", empIDd.DateFrom); 
     cmd.Parameters.AddWithValue("@DateTo ", empID.DateTo); 
     cmd.Parameters.AddWithValue("@Reason", empID.Reason); 
     if (conn.State == ConnectionState.Closed) 
     { 
      conn.Open(); 
     } 
     adapter.Fill(ds); 
    } 
    catch (Exception e) 
    { 
     throw e; 
    } 
    finally 
    { 
     if (conn.State == ConnectionState.Open) 
     { 
      conn.Close(); 
     } 
    } 
    return ds; 
} 
+2

empID是int類型和下一個代碼:empID.LeaveType不正確?不是嗎? –

+0

是的,但我該如何解決? –

+2

@AmmarAsjad:你沒有給我們足夠的信息......但你需要**認爲**這個問題。你正在傳遞一個'int',但你正試圖獲得各種其他信息傳遞給數據庫。你的存儲過程作爲參數是什麼,你期望從你的代碼中獲得它們的位置? –

回答

0

你傳入empIDint類型參數,後來你正在使用它作爲你的標準中的一種類型ameters。例如。

cmd.Parameters.AddWithValue("@LeaveType", empID.LeaveType); 

我相信你有可能會通過你的對象EmployeeLeave類型的在你的方法

GetLeaveRecord(int empID) 

或者你可能會根據你的方法ID你的對象,然後使用你的參數

+0

所以如何糾正 cmd.Parameters.AddWithValue(「@ LeaveType」,empID.LeaveType ); –

+0

@AmmarAsjad,具有'LeaveType'和其他屬性的對象是什麼?你需要將它作爲參數傳遞,而不是int,或者你可以在方法中獲得對象的ID,然後在你的參數中使用 – Habib

0

該代碼按預期工作。代碼是否意味着根據員工ID(empID)查找員工詳細信息?你的意思是傳入一個Employee對象嗎?你是否缺少對包含int類型擴展方法的名稱空間的引用?

0

請檢查您的方法的簽名

public DataSet GetLeaveRecord(int empID) 

請其更改爲

public DataSet GetLeaveRecord(Employee emp) 

通全體員工對象,以這種方法

+0

Int empId來自其他類,所以我不能編輯它到 public DataSet GetLeaveRecord(Employee emp) –

+0

然後使用empId檢索emp對象,因爲您正在使用僱員類屬性的其餘部分 –

0

你的方法採取INT作爲參數。

public DataSet GetLeaveRecord(int empID) 

後來試圖通過做

cmd.Parameters.AddWithValue("@LeaveType", empID.LeaveType); 

你肯定的說法應該是一個int和不是員工或具有這些特性的一些對象simulare以此作爲一個類型? LeaveType,EmployeeId ...

是這樣的嗎?

public DataSet GetLeaveRecord(Employee emp) 
+0

參數應該是int。 –

+0

@AmmarAsjad:爲什麼?你期望它做什麼?您尚未提供有關您嘗試執行的操作的足夠信息,或您的存儲過程需要的信息。 –

相關問題