如何使用存储过程从代码后面填充gridview

时间:2013-06-28 07:59:42

标签: c# asp.net visual-studio-2010 gridview dotnetnuke

我正在使用DotNetNuke与asp.net合作。

我想在我的另一个真实项目中尝试一些能帮助我的东西。

我想在sql server中使用Stored Procedures从后面的代码填充GridView?

    信息组件中的
  1. 我添加了这个:

    public string Emri2 { get; set; }

  2. 我在DataProvider中添加
  3. public abstract IDataReader GetEmri(string Emri);

  4. 控制器中的
  5. 我添加了这个:

     public GradesInfo GetEmri(GradesInfo gr)
    {
    
        return (GradesInfo)CBO.FillObject(DataProvider.Instance().GetEmri(gr.Emri2), typeof(GradesInfo));
    
    }
    
  6. 在SqlDataProvider中
  7. 我添加:

    public override IDataReader GetEmri(string Emri)
    {
        return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, "SelektoStudentet", Emri);
    }
    
  8. 如何在页面上加载网格将被填充?

    在页面上载:

    GradesController gr = new GradesController();

    GradesInfo grIn = new GradesInfo();

    grIn.Emri2 = "John";

    gr.GetEmri(grIn);

    有人可以帮忙吗?我尝试过很多东西,但我不能这样做

    P.S。我不允许使用SqlConnection,SqlCommand等。

1 个答案:

答案 0 :(得分:0)

如果你正在使用网格,你会想要使用稍微不同的返回类型,我猜你正在获取多个记录。

您的SqlDataProvider很好。但是在控制器中,您希望返回List<GradesInfo>

然后使用CBO.FillCollection<GradesInfo>(DataProvider.Instance().GetEmri("yourvaluehere"));

然后,在ascx中,您可以执行以下操作,假设您使用的id为dgrData的数据网格。

var controller = new GradesController();
dgrData.DataSource = controller.GetEmri("yourvaluehere");
dgrData.DataBind();