2017-02-03 1 views
0

私はdropdownlistから値を選択してデータを取り込む必要があるgridviewを持っています。グリッドビューを表示するためのデータベースストアドプロシージャから結果を取得できません

このため、ストアドプロシージャをパラメータで更新しようとしています。 Entity Frameworkデータベースアクセスを使用しています。

しかし、私はストアドプロシージャを変更した後、グリッドビューに何の結果も得られません。

誰でもお手伝いできますか?

public DataView BindReport() 
{ 
    var user = Session["currentUser"] as UserSession; 

    if (user == null) 
     return null; 

    var totalrows = 0; 

    var result = SalesReport.GetJobseekerReportResults(user.CompanyId,ref totalrows); 
    DataView ds = ToDataTable(result).DefaultView; 

    if (ViewState["SortExpr"] != null) 
      ds.Sort = ViewState["SortExpr"].ToString(); 

    RowCount = totalrows; 
    dataTable = new DataTable(); 
    dataTable = ds.ToTable(); 

    return ds; 
} 

private void InitializePageSize(GridView gridView) 
{ 
    var user = Session["currentUser"] as UserSession; 

    if (user == null) 
     return; 

    var pageSize = GridController.GetGridSizeForUser(user.UserId, gridView.ID, user.CompanyId); 

    if (pageSize == null) 
     return; 

    gridView.PageSize = (int)pageSize.page_size; 
    ddlSkillPageCount.SelectedValue = gridView.PageSize.ToString(CultureInfo.InvariantCulture); 
    gridView.DataBind(); 
} 

public static List<JobseekerReport_Result> GetJobseekerReportResults(long companyid, ref int tototalrows) 
{ 
    var context = new NavDataEntities(); 
    List<JobseekerReport_Result> result = null; 

    try 
    { 
     context.Database.Connection.Open(); 

     result = context.JobseekerReport(companyid).ToList(); 
    } 
    catch (Exception) 
    { 
    } 
    finally 
    { 
     context.Database.Connection.Close(); 
    } 

    return result; 
} 

public virtual ObjectResult<JobseekerReport_Result> JobseekerReport(Nullable<long> cmpid) 
{ 
    var cmpidParameter = cmpid.HasValue ? 
      new ObjectParameter("cmpid", cmpid) : 
      new ObjectParameter("cmpid", typeof(long)); 

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<JobseekerReport_Result>("JobseekerReport", cmpidParameter); 
} 
+0

GridViewにデータをバインドするコードはどこですか? – A3006

+0

GridView Bindingのコードを追加しました。 – sai

+0

gridView.DataBindの前にgridView.DataSourceがありませんか? – A3006

答えて

0
private void InitializePageSize(GridView gridView) 
{ 
    var user = Session["currentUser"] as UserSession; 
    if (user == null) return; 
    var pageSize = GridController.GetGridSizeForUser(user.UserId, gridView.ID, user.CompanyId); 
    if (pageSize == null) return; 
    gridView.PageSize = (int)pageSize.page_size; 
    ddlSkillPageCount.SelectedValue = gridView.PageSize.ToString(CultureInfo.InvariantCulture); 
    DataSet ds = BindReport(); /// Added these two lines. 
    gridView.DataSource = ds; /// 
    gridView.DataBind(); 
} 
+0

私はちょうど追加しました。 BindReport()の場合、型system.data.dataviewを暗黙的にsystem.data.datasetに変換することはできません。 – sai

+0

さて、DataView ds = BindReport()に変更してください。 – A3006

+0

これがそれです。今はエラーが表示されません。 – sai

0

私は結果を得ました。そして今、gridviewは、ドロップダウンリストの値が選択されたときに結果を入力します。

問題はedmxモデルにあります。いつでも私はテーブルやストアドプロシージャの変更を行う。まず、ソリューションからedmxモデルを削除してから、もう一度追加する必要があります。

ありがとうございます。

関連する問題