2013-12-02 3 views
0

У меня есть GridView «gvData», мне нужно, чтобы извлечь данные из моей функции GridView: (я использую C# приложение)GridView не показывает мой DataSource

algorithm.prison obj=new prison(); 
    gvData.DataSource= obj.TitForTat(); 

После запуска у меня есть пустой вид сетки. Вот мой код:

public DataSet TitForTat() 
    { 
     DataSet ds = new DataSet(); 
     DataTable dt = new DataTable("myt"); 
     dt.Columns.Add(new DataColumn("iteration", typeof(int))); 
     dt.Columns.Add(new DataColumn("prison1", typeof(string))); 
     dt.Columns.Add(new DataColumn("prison2", typeof (string))); 
     prison[] prisons = new prison[2]; 
     prisons[0] = new prison(); 
     prisons[1] = new prison(); 
     //--------------------------- 
     DataRow dr = dt.NewRow(); 
     prisons[0]._state = "c"; 
     prisons[1]._state = valueOfState[rd.Next(0, 1)]; 
     dr["iteration"] = 0; 
     dr["prison1"] = "c"; 
     dr["prison2"] = prisons[1]._state; 
     dt.Rows.Add(dr); 
     //---------------------- 
     for (int i = 1; i <= _iteration; i++) 
     { 
      prisons[0]._state = prisons[1]._state; 
      prisons[1]._state = valueOfState[rd.Next(0, 1)]; 
      DataRow dr1 = dt.NewRow(); 
      dr1["iteration"] =i; 

      dr1["prison1"] = prisons[0]._state; 
      dr1["prison2"] = prisons[1]._state; 
      dt.Rows.Add(dr1); 
     } 

     ds.Tables.Add(dt); 
     return ds; 
    } 
+0

ASP.NET или WinForms? –

+0

Я использую winform –

+0

У вас есть строки в вашем datatable? Вы можете проверить счетчик в конце метода. – NoChance

ответ

1

Если это ASP.NET -webforms GridView -контроль вам нужно позвонить DataBind() после вы назначили DataSource:

gvData.DataSource = obj.TitForTat(); 
gvData.DataBind(); 

Если это WinForms вы должны установить DataMember если вы используете DataSet вместо DataTable:

gvData.DataSource = obj.TitForTat(); 
gvData.DataMember = "myt"; 

... или использовать DataTable в первую очередь:

DataSet ds = obj.TitForTat(); 
if(ds.Tables.Count > 0) 
    gvData.DataSource = ds.Tables[0]; 
+0

Нет, это приложение формы –

+0

@Spad: Я отредактировал свой ответ. Я бы вернул «DataTable», если 'TitForTat' всегда создает одну таблицу. «DataSet» обычно используется для нескольких таблиц. Это, по крайней мере, сбивает с толку. –

Смежные вопросы