1

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;
    }

以下にある他のメソッドでDataSetの特定の列を使用したい:

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;
}

たとえば、最初のメソッドのプログラムテーブルの列ProgramIDを使用します。返されたデータセットを変数に格納する必要があることはわかっていますが、どうすればよいですか?

4

2 に答える 2

1

メソッドにds1アクセスできることを考えるとGetStudentByProgramID

その後、このように使用できます

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;
}
于 2012-07-22T20:09:52.187 に答える
0

クエリを1つ書いてみませんか?

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

そうすれば、各生徒にprogramIDを設定できます。

于 2012-07-22T20:03:07.990 に答える