2013-06-28 2 views
0

Я работаю с asp.net с DotNetNuke.Как заполнить gridviews из кода позади, используя хранимые процедуры

И я хочу попробовать что-то, что поможет мне в моем другом реальном проекте.

Я хочу заполнить GridView из кода, использующего хранимые процедуры на сервере sql?

  1. в компоненте Info добавить следующее:

    public string Emri2 { get; set; }

  2. в DataProvider добавить это:

    public abstract IDataReader GetEmri(string Emri);

  3. в контроллере я добавить это:

    public GradesInfo GetEmri(GradesInfo gr) 
    { 
    
        return (GradesInfo)CBO.FillObject(DataProvider.Instance().GetEmri(gr.Emri2), typeof(GradesInfo)); 
    
    } 
    
  4. в SqlDataProvider добавить это:

    public override IDataReader GetEmri(string Emri) 
    { 
        return (IDataReader)SqlHelper.ExecuteReader(ConnectionString, "SelektoStudentet", Emri); 
    } 
    

Как это сделать, что на странице загрузки сетка будет заполнена?

На Pageload:

GradesController gr = new GradesController();

GradesInfo grIn = new GradesInfo();

grIn.Emri2 = "John";

gr.GetEmri(grIn);

может кто-то помочь им, пожалуйста? Я пробовал много вещей, но я не могу это сделать

P.s. Мне не разрешено использовать SqlConnection, SqlCommand и т. Д.

ответ

0

Если вы работаете с сеткой, вам нужно будет работать с немного другим типом возврата. Я предполагаю, что вы получаете несколько записей.

Ваш SqlDataProvider в порядке. Но в контроллере вы хотите, чтобы возврат был List<GradesInfo>.

CBO.FillCollection<GradesInfo>(DataProvider.Instance().GetEmri("yourvaluehere")); Затем используйте

Затем в ASCX вы можете сделать следующее, при условии, что вы используете DataGrid с идентификатором dgrData.

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