2012-07-22 49 views
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; 
    } 

我想從在其它方法的數據集,其是下面使用特定的柱:

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第一個方法。我知道我必須將返回的數據集存儲在變量中,但是如何

+0

我應該得到下述爲什麼答案之前問你需要ProgamId列GetStudentByProgramID – HatSoft 2012-07-22 20:12:11

+0

好吧,我將根據他們的ProgramID檢索學生。 – unknownsatan 2012-07-22 20:14:09

+0

但是,您已經在此GetStudentByProgramID(int programID) – HatSoft 2012-07-22 20:16:56

回答

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

瞭解完您的要求後,發佈的答案將允許您使用ProgamId行 – HatSoft 2012-07-22 20:27:07

+0

讓我試試這個。 – unknownsatan 2012-07-22 20:29:35

+0

System.Data.DataSet不包含Table的定義。 :/ – unknownsatan 2012-07-22 20:32:08

0

爲什麼不寫一個查詢?

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

這樣,你會讓每個學生都有他們的programID。

+0

嗯,坦率地說,爲作業寫兩種方法是必需的。這就是我爲什麼這樣做的原因。 – unknownsatan 2012-07-22 20:06:29

+0

'「SELECT LastName,FirstName FROM Student WHERE ProgramID =」+ programID' ..你想得到一個**特定的** programID的結果嗎? – 2012-07-22 20:08:19

+0

我不好使,我忘了使用JOIN。 – unknownsatan 2012-07-22 20:15:18