简体   繁体   中英

Write data to textbox row by row from database

i want to display data from database row by row in table

在此输入图像描述

how to write data from database to each textbox row wise

(ie) date activity1,activity2 etc then next row date activity1,activyt2 etc.. how to write proper loop

The code i have tried for getting data for first row:

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();
        }
    }

@kumartyr , according to your needs , you don't want to use Gridview.

So , i rewrite the GetActivity() funtion for dynamic Textbox access.

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();
    }
}

Use a GridView and bind your OracleCommand as the DataSource. You can customize each cell to show the data you want and you don't have to do any looping or manually add thousands of textboxes.

Here's the documentation with tons of examples: https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview(v=vs.110).aspx

Are you using GridView ?, you can create row template and bind the grid view all at once in RowDataBound event

these are easy way to bind gridview. this is a very good example

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM