-7

我面临以下错误

“int”不包含“LeaveType”的定义,并且找不到接受“int”类型的第一个参数的扩展方法“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;
}
4

4 回答 4

0

empID作为int类型参数传递,稍后您将其用作参数中的类型。例如。

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

我相信你必须在你的方法中传递你的对象EmployeeLeave类型

GetLeaveRecord(int empID)

或者你可以根据ID你的方法获取你的对象,然后在你的参数中使用它

于 2012-08-31T06:17:50.063 回答
0

代码按预期工作。代码是否意味着在给定员工 ID (empID) 的情况下查找员工详细信息?您的意思是要传入一个 Employee 对象吗?您是否缺少对包含 int 类型的扩展方法的命名空间的引用?

于 2012-08-31T06:19:20.390 回答
0

请检查您的方法的签名

public DataSet GetLeaveRecord(int empID)

请改成

public DataSet GetLeaveRecord(Employee emp)

将整个员工对象传递给此方法

于 2012-08-31T06:19:44.103 回答
0

您的方法将 int 作为参数。

public DataSet GetLeaveRecord(int empID)

稍后您尝试通过这样做将其用作类型

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

您确定参数应该是 int 而不是 Employee 或具有这些属性的某个对象模拟吗?LeaveType,EmployeeId...

像这样的东西?

public DataSet GetLeaveRecord(Employee emp)
于 2012-08-31T06:21:19.290 回答