2014-10-27 23 views
0

我已用vb.net这个代码插入数据到两个不同的阵列:使用两个阵列在每个循环

salesman_product(salesman_product_counter) = reader2.GetString(0) 
salesman_product_amount(salesman_product_counter) = "£" + Val(reader2.GetString(1)).ToString("F2") 

salesman_product_counter是+1每次具有多个(阵列是内部的while循环)

创建数组工作正常,我怎么能通过两个数组循环获取数据?

我曾尝试:

For Each salesman_product2 In salesman_product and salesman_product_amount2 in salesman_product_amount 
Salesman_xlWorkSheet.Cells(salesman_product2, 1) = company_name 'client name 
Salesman_xlWorkSheet.Cells(salesman_product2, 2) = customer_account 'client account 
Salesman_xlWorkSheet.Cells(salesman_product2, 3) = salesman_product2 'product 
Salesman_xlWorkSheet.Cells(salesman_product2, 4) = reader4.GetString(0) 'commission percentage 
Salesman_xlWorkSheet.Cells(salesman_product2, 5) = Lines_International_Calls * (reader4.GetString(0)/100) 'commission amount 
Next 

,但你不能使用AND

我需要能够看到一个循环内从两个阵列数据

+1

使用对于indx = 0 to salesman_Product.GetUpperBound(0)而不是For Each? – rheitzman 2014-10-27 14:33:22

+1

如果只有一种方法可以保存诸如'salesman','product'和[所有内容一起在一件事情中......](http://msdn.microsoft.com/zh-cn/library/ms973814.aspx ) – Plutonix 2014-10-27 14:38:16

回答

2

你必须循环索引。

For index As Integer = 0 To salesman_product.Count-1 
    salesman_product2 = salesman_product(index) 
    salesman_product_amount2 = salesman_product_amount(index) 
    Salesman_xlWorkSheet.Cells(salesman_product2, 1) = company_name 'client name 
    Salesman_xlWorkSheet.Cells(salesman_product2, 2) = customer_account 'client account 
    Salesman_xlWorkSheet.Cells(salesman_product2, 3) = salesman_product2 'product 
    Salesman_xlWorkSheet.Cells(salesman_product2, 4) = reader4.GetString(0) 'commission percentage 
    Salesman_xlWorkSheet.Cells(salesman_product2, 5) = Lines_International_Calls * (reader4.GetString(0)/100) 'commission amount 
Next 

但要做到这一点,正确的方法是不是创造2阵,但有一类的列表

你需要创建一个类的业务员信息

Class SalesmanProduct 
    Public Property Name As String 
    Public Property Amount As String 
End Class 

产品添加到列表

Dim salesmanProducts As New List(Of SalesmanProduct) 

' ... 

Dim newProduct As New SalesmanProduct 

newProduct.Name = reader2.GetString(0) 
newProduct.Amount = "£" + Val(reader2.GetString(1)) 

salesmanProducts.Add(newProduct) 

然后您就可以“对于每个”名单

For Each product As SalesmanProduct In salesmanProducts 
    ' product.Name 
    ' product.Amount 
Next 

我可以争辩说,将数量作为字符串存储在数据库中是一个坏主意,但这与此问题无关。