哪里错了?动态创建标签c#

时间:2013-02-28 13:50:01

标签: c# .net oracle runtime

我动态创建了labelstextboxes。一切顺利,但第二个label根本不想出现。哪里我错了?这是我在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++;

1 个答案:

答案 0 :(得分:1)

我认为第二个标签出现了。但它的文字是一个空字符串!所以你永远不会看到它。 检查数据库阅读器返回的“data_type”。