2013-09-24 17 views
1

一個人如何在查詢的結果集通過每行一個C#列出一個人如何在查詢的結果集通過每個行AC#列表

到目前爲止,我在做的嘗試是結果集傳遞給一個SqlDataReader然後在C#列表中迭代其內容。

我使用的列表抽樣基準在此鏈接: How to return SqlDataReader in C# WCF?

//查詢

 string comm = "SELECT " + 
         "Name" + 
         "Local" + 
         "Employee_Number" + 
         "Employee_Name" + 
         "FROM t_temp_list"; 

     SqlCommand sel = new SqlCommand(comm,con); 

//的DataReader
SqlDataReader的RDR;

 try 
     { 
      con.Open(); 
      rdr= sel.ExecuteReader(); 
      pullShuffledData(rdr); 
     } 
     catch(SqlException ex) 
     { 
      Alert.Show("Error:"+ ex); 
     } 

//列表的方法

public void pullShuffledData(SqlDataReader rdr) 
    { 
     List<shuffleDataList> callList = new List<shuffleDataList>(); 
     //callList.Add 

     if (rdr != null) 
     { 
      if (rdr.HasRows) 
      { 
       while (rdr.Read()) 
       { 
        //return sqlReader[0].ToString(); 
        callList.Add(rdr[0].ToString()); 
       } 
       sqlConn.Close(); 
      } 
      else 
      { 
       return null; 
      } 
     } 
     return callList; 

內,但我不知道如何輸出每個結果集的行插入變量列表的迭代中。任何幫助深表感謝。謝謝你在前進

+0

爲什麼不這項工作 - 你遇到了什麼錯誤 ? 'shuffleDataList'的結構是什麼? – bhs

+0

Vishnu, 嘗試使用'yield'關鍵字,如以下文章中所述 http://stackoverflow.com/questions/10252531/returning-a-sqldatareader – 2013-09-24 10:04:00

+0

@bhs我想實現的是每個結果集行傳遞列表迭代中的變量或將行值傳遞給List變量,以便可以在pullShuffledData方法之外訪問它。我在C#中非常新,並且還不熟悉C#中的Lists。謝謝 – vishnu

回答

1

假設shuffleDataList是定義爲類:

class shuffleDataList 
{ 
    public string Name {get;set;} 
    public string Local {get;set;} 
    public string Employee_Number {get;set;} 
    public string Employee_Name {get;set;} 
} 

然後,您可以用shuffleDataList對象來填充您的列表如下:

public List<shuffleDataList> pullShuffledData(SqlDataReader rdr) 
{ 
    List<shuffleDataList> callList = new List<shuffleDataList>(); 

    if (rdr != null) 
    { 
     if (rdr.HasRows) 
     { 
      while (rdr.Read()) 
      { 
       callList.Add(new shuffleDataList() 
        { 
         Name = rdr.GetString(0), //Name column 
         Local = rdr.GetString(1), //Local column 
         Employee_Number = rdr.GetString(2), //Employee_Number column 
         Employee_Name = rdr.GetString(3), //Employee_Name column 
        }); 
      } 
      sqlConn.Close(); 
     } 
     else 
     { 
      return null; 
     } 
    } 
    return callList; 
} 
+0

謝謝。將試試這個,看看它是如何工作的。 – vishnu

相關問題