c11ada
c11ada

Reputation: 4334

.NET - How do I retrieve specific items out of a Dataset?

I have the following code which connects to a database and stores the data into a dataset.

What I need to do now is get a single value from the data set (well actually its two the first row column 4 and 5)

OdbcConnection conn = new OdbcConnection();
    conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;

    DataSet ds = new DataSet();

    OdbcDataAdapter da = new OdbcDataAdapter("SELECT * FROM MTD_FIGURE_VIEW1", conn);

    da.Fill(ds)

So, I need to get two specific items and store them into ints, the psudo code would be

int var1 = ds.row1.column4
int var2 = ds.row1.column5

Any ideas on how I can do this?

Also, can some one shed a light on data tables too as this may be related to how I'm going about doing this.

Upvotes: 13

Views: 140846

Answers (5)

int intVar = (int)ds.Tables[0].Rows[0][n];   // n = column index

Upvotes: 0

Chris Dunaway
Chris Dunaway

Reputation: 11216

I prefer to use something like this:

int? var1 = ds.Tables[0].Rows[0].Field<int?>("ColumnName");

or

int? var1 = ds.Tables[0].Rows[0].Field<int?>(3);   //column index

Upvotes: 2

Senad Meškin
Senad Meškin

Reputation: 13756

int var1 = int.Parse(ds.Tables[0].Rows[0][3].ToString());
int var2 = int.Parse(ds.Tables[0].Rows[0][4].ToString());

Upvotes: 0

Muhammad Akhtar
Muhammad Akhtar

Reputation: 52241

You can do like...

If you want to access using ColumnName

Int32 First = Convert.ToInt32(ds.Tables[0].Rows[0]["column4Name"].ToString());
Int32 Second = Convert.ToInt32(ds.Tables[0].Rows[0]["column5Name"].ToString());

OR, if you want to access using Index

Int32 First = Convert.ToInt32(ds.Tables[0].Rows[0][4].ToString());
Int32 Second = Convert.ToInt32(ds.Tables[0].Rows[0][5].ToString());

Upvotes: 34

Justin C
Justin C

Reputation: 1924

The DataSet object has a Tables array. If you know the table you want, it will have a Row array, each object of which has an ItemArray array. In your case the code would most likely be

int var1 = int.Parse(ds.Tables[0].Rows[0].ItemArray[4].ToString());

and so forth. This would give you the 4th item in the first row. You can also use Columns instead of ItemArray and specify the column name as a string instead of remembering it's index. That approach can be easier to keep up with if the table structure changes. So that would be

int var1 = int.Parse(ds.Tables[0].Rows[0]["MyColumnName"].ToString());

Upvotes: 4

Related Questions