2012-08-31 74 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:为什么?你期望它做什么?您尚未提供有关您尝试执行的操作的足够信息,或您的存储过程需要的信息。 –

相关问题