-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 やこれらのプロパティを持つオブジェクト simulare ではありませんか? 休暇の種類、従業員 ID...

このようなもの?

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