2015-04-15 6 views
3

я хочу, чтобы отобразить данные из строки базы данных по строкам в таблицеЗапись данных в текстовое поле по строкам из базы данных

enter image description here

как записать данные из базы данных для каждой текстового поля строки мудрой

(т.е.) дата activity1, деятельности2 и т.д., то следующая строка дата activity1, activyt2 и т.д .. как написать правильную петлю

код я попытался для получения данных для первой строки:

private void GetActivity() 
    { 
     try 
     { 
      CON = new OracleConnection(Connection); 
      CON.Open(); 
      OracleCommand COMMAND1 = new OracleCommand("Select ACTIVITYID,to_char(ACTIVITYDATE,'DD-MON-YYYY') as ACTIVITYDATE,TITLE,STARTTIME,ENDTIME,ACTIVITYTIME as TIMETAKEN from DAILY_ACTIVITIES1 where ACTIVITYDATE= (Select min(ACTIVITYDATE) from DAILY_ACTIVITIES1)", CON); 

      OracleDataReader READER = COMMAND1.ExecuteReader();    
      int count = READER.FieldCount; 

      if (READER.HasRows) 
      { 
       while (READER.Read()) 
       { 
        if (Date1TextBox.Text == "") 
        { 
         Date1TextBox.Text = READER[1].ToString(); 
         Date1TextBox.Enabled = false; 
        } 

        if (D1A1TextBox.Text == "") 
        { 
         D1A1TextBox.Text = "Title:" + READER[2].ToString() + "\n"; 
         D1A1TextBox.Text += "Start-time:" + READER[3].ToString() + "\n"; 
         D1A1TextBox.Text += "End-time:" + READER[4].ToString() + "\n"; 
         D1A1TextBox.Text += "Timetaken:" + READER[5].ToString() + "\n"; 
         D1A1TextBox.Enabled = false; 
        } 
        else 
        { 
         D1A1TextBox.Enabled = false; 
        } 

        if (D1A2TextBox.Text == "") 
        { 
         D1A2TextBox.Text = "Title:" + READER[2].ToString() + "\n"; 
         D1A2TextBox.Text += "Start-time:" + READER[3].ToString() + "\n"; 
         D1A2TextBox.Text += "End-time:" + READER[4].ToString() + "\n"; 
         D1A2TextBox.Text += "Timetaken:" + READER[5].ToString() + "\n"; 
         D1A2TextBox.Enabled = false; 
        } 
        else 
        { 
         D1A2TextBox.Enabled = false; 
        } 

        if (D1A3TextBox.Text == "") 
        { 
         D1A3TextBox.Text = "Title:" + READER[2].ToString() + "\n"; 
         D1A3TextBox.Text += "Start-time:" + READER[3].ToString() + "\n"; 
         D1A3TextBox.Text += "End-time:" + READER[4].ToString() + "\n"; 
         D1A3TextBox.Text += "Timetaken:" + READER[5].ToString() + "\n"; 
         D1A3TextBox.Enabled = false; 
        } 
        else 
        { 
         D1A3TextBox.Enabled = false; 
        } 

        if (D1A4TextBox.Text == "") 
        { 
         D1A4TextBox.Text = "Title:" + READER[2].ToString() + "\n"; 
         D1A4TextBox.Text += "Start-time:" + READER[3].ToString() + "\n"; 
         D1A4TextBox.Text += "End-time:" + READER[4].ToString() + "\n"; 
         D1A4TextBox.Text += "Timetaken:" + READER[5].ToString() + "\n"; 
         D1A4TextBox.Enabled = false; 
        } 
        else 
        { 
         D1A4TextBox.Enabled = false; 
        } 

        if (D1A5TextBox.Text == "") 
        { 
         D1A5TextBox.Text = "Title:" + READER[2].ToString() + "\n"; 
         D1A5TextBox.Text += "Start-time:" + READER[3].ToString() + "\n"; 
         D1A5TextBox.Text += "End-time:" + READER[4].ToString() + "\n"; 
         D1A5TextBox.Text += "Timetaken:" + READER[5].ToString() + "\n"; 
         D1A5TextBox.Enabled = false; 
        } 
        else 
        { 
         D1A5TextBox.Enabled = false; 
        } 

        if (D1A6TextBox.Text == "") 
        { 
         D1A6TextBox.Text = "Title:" + READER[2].ToString() + "\n"; 
         D1A6TextBox.Text += "Start-time:" + READER[3].ToString() + "\n"; 
         D1A6TextBox.Text += "End-time:" + READER[4].ToString() + "\n"; 
         D1A6TextBox.Text += "Timetaken:" + READER[5].ToString() + "\n"; 
         D1A6TextBox.Enabled = false; 
        } 
        else 
        { 
         D1A6TextBox.Enabled = false; 
        } 
       } 
      }   
      CON.Close(); 
     } 

     catch (Exception et) 
     { 
      et.ToString(); 
     } 
    } 
+0

kumartyr, где вы получаете D1A1TextBox ~ D1A6TextBox? –

+0

@AngusChung Это все текстовые поля, которые помещаются в первую строку таблицы с multiline = true (i.e), выделенный один из них - D1A3textbox – kumartyr

+0

Я знаю, но как вы можете использовать их в GetActivity() напрямую? –

ответ

2

@kumartyr, в соответствии с вашими потребностями, вы не хотите использовать Gridview.

Итак, я переписываю функцию GetActivity() для динамическое текстовое поле доступ.

private void GetActivity() 
{ 
    try 
    { 
     CON = new OracleConnection(Connection); 
     CON.Open(); 
     OracleCommand COMMAND1 = new OracleCommand("Select ACTIVITYID,to_char(ACTIVITYDATE,'DD-MON-YYYY') as ACTIVITYDATE,TITLE,STARTTIME,ENDTIME,ACTIVITYTIME as TIMETAKEN from DAILY_ACTIVITIES1 where ACTIVITYDATE= (Select min(ACTIVITYDATE) from DAILY_ACTIVITIES1)", CON); 

     OracleDataReader READER = COMMAND1.ExecuteReader(); 
     int count = READER.FieldCount; 

     if (READER.HasRows) 
     { 
      int i = 1; 
      TextBox txtDate; 
      TextBox txtDA; 
      ContentPlaceHolder cph = (ContentPlaceHolder)this.Master.FindControl("MainContent"); 
      while (READER.Read() && i <= 6) 
      { 
       if (i == 1) 
       { 
        txtDate = (TextBox)cph.FindControl(string.Format("Date{0}TextBox", i.ToString())); 
        txtDate.Text = READER[1].ToString(); 
        txtDate.Enabled = false; 
       } 

       txtDA = (TextBox)cph.FindControl(string.Format("D1A{0}TextBox", i.ToString())); 
       if (txtDA.Text == "") 
       { 
        txtDA.Text = "Title:" + READER[2].ToString() + "\n"; 
        txtDA.Text += "Start-time:" + READER[3].ToString() + "\n"; 
        txtDA.Text += "End-time:" + READER[4].ToString() + "\n"; 
        txtDA.Text += "Timetaken:" + READER[5].ToString() + "\n"; 
       } 
       txtDA.Enabled = false; 
       i++; 
      } 
     } 
     CON.Close(); 
    } 

    catch (Exception et) 
    { 
     et.ToString(); 
    } 
} 
+0

Это работает .. Спасибо – kumartyr

0

Используйте GridView и привяжите свой OracleCommand как источник данных. Вы можете настроить каждую ячейку, чтобы отобразить нужные данные, и вам не нужно делать никаких циклов или вручную добавлять тысячи текстовых полей.

Вот документация тоннами примеров: https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview(v=vs.110).aspx

0

Вы используете GridView, вы можете создать шаблон строки и связать вид сетки сразу в RowDataBound случае

это легкий способ связать вид сетки. this - очень хороший пример