Reputation: 731
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
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
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