循环遍历ListBox中的所有项目?

时间:2009-10-08 16:09:44

标签: c# .net asp.net arrays listboxitem

我有一个列表框,其中填充了以下代码:

  • lstOutcome.Items.Add(lstMap.SelectedItem.Text);

在列表框lstOutcome中,我需要能够遍历 列表框,并能够取得的价值 第一,第二等列出项目。

我需要遍历每一行并抓住它的原因 该行的价值是如此我可以使用任何值 用于填充其他内容的那一行。

例如,在我的列表框中,我有:

  • 1
  • 2
  • 3

我需要能够在按钮上循环列表框 单击并将值分配给txtboxes:

  • textbox1.Text ='列表框中的第1项';
  • textbox2.Text ='列表框中的第2项';
  • textbox3.Text ='列表框中的第3项';

我不确定我是否需要一个数组或者这是怎么回事 实现。这个例子的重点是我会 实际上是使用列表框中的项来映射列。一世 我正在导入Microsoft Excel电子表格。在lstMap我有 列名称,我试图让列名匹配 我的数据库。使用此代码我试图获取值 列表框:

foreach(object li in lstOutcome.Items)
{
    bulkCopy.DestinationTableName = "Customers";
    //Amount to bulkcopy at once to prevent slowing with large imports.
    bulkCopy.BatchSize = 200;
    SqlBulkCopyColumnMapping map1 = new SqlBulkCopyColumnMapping(li.ToString(), "CustomerID");
    bulkCopy.ColumnMappings.Add(map1);

3 个答案:

答案 0 :(得分:1)

您需要将文本框放在一个数组中,如下所示:

Textbox[] textboxes = new Textbox[] { textbox, textbox2, textbox3 };

for (int i = 0; i < listBox1.Items.Count; i++) {
    textboxes[i].Text = "Item: " + listBox1.Items[i].ToString();
}

请注意,如果列表框中有三个以上的项目,则会失败,因为它将耗尽文本框。要获得更完整的解决方案,请添加一些上下文。什么是文本框?列表框中的数据是什么来的?

答案 1 :(得分:1)

编写答案的更有效方法是:

static readonly string[] FieldNames = new string[] { "CustomerID", "Name", "Address", ..., "Email" };

using(SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString, options)) {

    bulkCopy.DestinationTableName = "Customers";
    //amount to bulkcopy at once to prevent slowing with large imports
    bulkCopy.BatchSize = 200;

    for(int i = 0; i < FieldNames.Length; i++) {
        bulkCopy.ColumnMappings.Add(
            new SqlBulkCopyColumnMapping(lstOutcome.Items[i].ToString(), FieldNames[i])
        );
    }
}

答案 2 :(得分:0)

我让它工作,看看这个代码amigo的

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString, options))
                    {
                        ArrayList myList = new ArrayList();
                        foreach (ListItem li in lstOutcome.Items)
                        {
                            myList.Add(li);
                        }
                        bulkCopy.DestinationTableName = "Customers";
                        //amount to bulkcopy at once to prevent slowing with large imports
                        bulkCopy.BatchSize = 200;
                        SqlBulkCopyColumnMapping map1 = new SqlBulkCopyColumnMapping(myList[0].ToString(), "CustomerID");
                        bulkCopy.ColumnMappings.Add(map1);
                        SqlBulkCopyColumnMapping map2 = new SqlBulkCopyColumnMapping(myList[1].ToString(), "Name");
                        bulkCopy.ColumnMappings.Add(map2);
                        SqlBulkCopyColumnMapping map3 = new SqlBulkCopyColumnMapping(myList[2].ToString(), "Address");
                        bulkCopy.ColumnMappings.Add(map3);
                        SqlBulkCopyColumnMapping map4 = new SqlBulkCopyColumnMapping(myList[3].ToString(), "City");
                        bulkCopy.ColumnMappings.Add(map4);
                        SqlBulkCopyColumnMapping map5 = new SqlBulkCopyColumnMapping(myList[4].ToString(), "State");
                        bulkCopy.ColumnMappings.Add(map5);
                        SqlBulkCopyColumnMapping map6 = new SqlBulkCopyColumnMapping(myList[5].ToString(), "ZipCode");
                        bulkCopy.ColumnMappings.Add(map6);
                        SqlBulkCopyColumnMapping map7 = new SqlBulkCopyColumnMapping(myList[6].ToString(), "Phone");
                        bulkCopy.ColumnMappings.Add(map7);
                        SqlBulkCopyColumnMapping map8 = new SqlBulkCopyColumnMapping(myList[7].ToString(), "Email");
                        bulkCopy.ColumnMappings.Add(map8);