unknownsatan
unknownsatan

Reputation: 731

Using returned Values from a DataSet

I have a method which returns DataSet.

  protected DataSet GetProgramList()
    {
        DataSet ds1 = new DataSet();
        using (SqlConnection cn = new SqlConnection("server=Daffodils-PC\\sqlexpress;Database=Assignment1;Trusted_Connection=Yes;"))
        {
            using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT * FROM Program", cn))
                da.Fill(ds1, "Program");
        }
        return ds1;
    }

I want to use a specific column from the DataSet in other Method which is below:

protected DataSet GetStudentByProgramID(int programID)
{
    DataSet ds2 = new DataSet();
    using (SqlConnection cn = new SqlConnection("server=Daffodils-PC\\sqlexpress;Database=Assignment1;Trusted_Connection=Yes;"))
    {
        using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT LastName, FirstName FROM Student JOIN Program on Program.ProgramID = Student.ProgramID WHERE ProgramID ="+programID, cn))
            da.Fill(ds2, "Student");
    }
    return ds2;
}

For example I want to use, the column ProgramID from Program Table in first method. I know I have to store the returned dataset in a variable but How?

Upvotes: 1

Views: 2222

Answers (2)

HatSoft
HatSoft

Reputation: 11191

Given that you will have ds1 accessible for GetStudentByProgramID method

Then you can use it this way

rotected DataSet GetStudentByProgramID(int programID)
{

 DataColumn programId = ds1.Tables[0].Columns["ProgramId"];
//to read row you can iterate from ds1.Table[0].Rows

DataSet ds2 = new DataSet();
using (SqlConnection cn = new SqlConnection("server=Daffodils-PC\\sqlexpress;Database=Assignment1;Trusted_Connection=Yes;"))
{
using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT LastName, FirstName FROM Student WHERE ProgramID ="+programID, cn))
da.Fill(ds2, "Student");
}
return ds2;
}

Upvotes: 1

Royi Namir
Royi Namir

Reputation: 148524

Why don't you write one query?

SELECT programID, LastName, FirstName 
FROM Program JOIN Student ON Program.Id=Student.ProgramId

That way, you'll have each student with their programID.

Upvotes: 0

Related Questions