1

次の手順に従って、テーブルからレコードをクエリしてレポートを表示しようとしています。

http://www.codeproject.com/Articles/166291/Generate-a-report-using-Crystal-Reports-in-Visual

行でエラーがスローされます

ds.Tables [0] .Merge(dt);

'Tables'の定義が含まれておらず、型の最初の引数を受け入れる拡張メソッド'Tables'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

以下のコードで。助けてください。

Empは、データセットが含まれるxsdファイル名(Emp.xsd)です。

protected void Page_Load(object sender, EventArgs e)
    {
        ReportDocument rptDoc = new ReportDocument();
        Emp ds = new Emp(); // Emp is the xsd file name (Emp.xsd)
        DataTable dt = new DataTable();
        // Just set the name of data table
        dt.TableName = "EmployeeStats";
        dt = AB.GetEEmpStats((int)Session["EmpID"]); //Call function to get the     employee statistics

        ds.Tables[0].Merge(dt); <<<<<<<<<<<<<<<<<<< Error at this line

        // .rpt file path
        rptEmpStat.Load(Server.MapPath("EmpStats.rpt"));
        //dataset to the report viewer.
        rptDoc.SetDataSource(ds);
        Emp.ReportSource = rptDoc;
        Emp.RefreshReport();

    }

GetEEmpStatsのコードは以下のとおりです

 public DataTable GetEEmpStats(int ID)
    {
        //Connection string 
        //string sqlCon = <***************>;

        SqlConnection Con = new SqlConnection(sqlCon);
        SqlCommand cmd = new SqlCommand();
        DataSet ds = null;
        SqlDataAdapter adapter;
        try
        {
            Con.Open();
            //Stored procedure 
            cmd.CommandText = "sp_getEmpDetails";
            cmd.CommandType = CommandType.StoredProcedure;
            // input parameter 

            SqlParameter parameter1 = new SqlParameter();
            parameter1.ParameterName = "@ID";
            parameter1.SqlDbType = SqlDbType.Int;
            parameter1.Direction = ParameterDirection.Input;
            parameter1.Value = ID;

            // Add the parameter to the Parameters collection. 
            cmd.Parameters.Add(parameter1);
            cmd.Connection = Con;
            ds = new DataSet();
            adapter = new SqlDataAdapter(cmd);
            adapter.Fill(ds, "EmpDet");
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
        finally
        {
            cmd.Dispose();
            if (Con.State != ConnectionState.Closed)
                Con.Close();
        }
        return ds.Tables[0];
    }
4

0 に答える 0