Solved

Dataset convert into array

Posted on 2009-05-05
4
702 Views
Last Modified: 2013-11-08
I have a dataset that the user has changed in a Datagrid.  I want to take one column of data, i.e. sales order # and get an array so I can use the list in another SQL lookup for more details on the order number.

Sample
ord_no    Cust_no    Address
1              3334           1 Test Dr.
2               3336           5 Test Dr.
6              3339            9 Test Dr.

Now I need to get the ord_no from the dataset as the following
(1, 2, 6)
Reason is so I can place into SQL command Select * from Order_details where ord_no in (1, 2, 6)
0
Comment
Question by:kwitcom
  • 2
4 Comments
 
LVL 15

Expert Comment

by:oobayly
ID: 24305599
Just create an array of the correct size (and type), and then just loop through each row of the table in the dataset & populate the array
Dim table As DataTable = ds.Tables("TableName")

Dim values As New Integer(table.Rows.Count -1)

For i As Integer = 0 to values.Length - 1

  values(i) = CInt(table.Rows(i)("ord_no"))

Next

Open in new window

0
 
LVL 15

Expert Comment

by:mohan_sekar
ID: 24305602
You need to loop through the dataset to create an array
0
 
LVL 11

Accepted Solution

by:
srikanthreddyn143 earned 500 total points
ID: 24305623
Dim sString As String = String.Empty
For Each row As DataRow In Ds.Table(0).Rows

sString = sString & row("Order#") & ","

Next

sString = sString.Remove(sString.Length-1)

Dim sSQL As String = "Select * from Order_details where ord_no in (" & sString & ")"
0
 
LVL 15

Expert Comment

by:oobayly
ID: 24305773
If you're going to concatenate a string in a loop of an unknown (at design time) number of items, I'd highly recommend using either StringBuilder or creating a String array, and using Join.

The reason being that a string is immutable, ie. a new copy is created every time you modify it.

Of course, don't go overboard with StringBuilder, if you know the loop will be only 3 items there's no need for it. If there could be 100+ items, it's probably worth using.
Dim values As New String(table.Rows.Count - 1)

'' Populate String array
 

Dim query As String = "SELECT ... IN (' & String.Join(",", values) & ")"

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How to deploy to IIS 7 on 2008R2 server with DUO 2-step login? 2 37
fso.FolderExists("\\server\HiddenFolder$") 4 52
Run time Error 4 34
Close tabpage of custom control 9 23
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now