Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

where I am wrong? creating labels dynamically c#

I created labels and textboxes dynamically . everything goes fine,but the second label doesn't want to appear at all. where i am wrong? this is my code in C#:

private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    OracleDataReader reader;
    int x = 434;
    int y = 84;
    int i = 0;
    try
    {
        conn.Open();

        foreach (var itemChecked in checkedListBox1.CheckedItems)
        {
            Label NewLabel = new Label();
            NewLabel.Location = new Point(x + 100, y);
            NewLabel.Name = "Label" + i.ToString();
            Controls.Add(NewLabel);
            TextBox tb = new TextBox();
            tb.Location = new Point(x, y);
            tb.Name = "txtBox" + i.ToString();
            Controls.Add(tb);
            y += 30;
            OracleCommand cmd = new OracleCommand("SELECT distinct data_type from all_arguments where owner='HR' and argument_name='" + itemChecked.ToString() + "'", conn);


            reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                label[0].Text = reader["data_type"].ToString();
            }

            i++;
        }
    }
    finally
    {
        if (conn != null)
            conn.Close();
    }
}

private void Procedure()
{
    string proc = "";
    try
    {
        conn.Open();

        if (this.listView1.SelectedItems.Count > 0)
            proc = listView1.SelectedItems[0].Text;

        OracleCommand cmd = new OracleCommand("" + proc + "", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandTimeout = 600;

        int i = 0;
        foreach (var itemChecked1 in checkedListBox1.Items)
        {
            Control[] txt = Controls.Find("txtBox" + i.ToString(), false);
            Control[] label = Controls.Find("Label" + i.ToString(), false);
            cmd.Parameters.Add(new OracleParameter("select distinct data_type from all_arguments where owner='HR' and argument_name=toupper("+itemChecked1.ToString()+")",conn));
            cmd.Parameters[":"+itemChecked1.ToString()+""].Value=label[0].Text;
            cmd.Parameters.Add(new OracleParameter(":" + itemChecked1.ToString() + "", OracleDbType.Varchar2));
            cmd.Parameters[":" + itemChecked1.ToString() + ""].Value = txt[0].Text;

            i++;
like image 242
Viva Avatar asked Feb 28 '13 13:02

Viva


People also ask

How to add labels dynamically in c# net?

public partial class newTemplate : Form { int i = 0; int x = 22; int noofcontrols = 0; TextBox[] t1 = new TextBox[25]; Label[] l1 = new Label[25]; public newTemplate() { InitializeComponent(); } . . . }

What are dynamic labels?

Dynamic labels are labels that are placed on a data layer based on user interaction, and whose text is generated dynamically based on a labeling expression stored with the data being labeled.


1 Answers

I think the second Label has appeared. But its text is an empty string! So you will never see it. Check the "data_type" returned by DB reader.

like image 146
WAKU Avatar answered Sep 23 '22 21:09

WAKU