2012-04-20 90 views
1

我爲我的Gridview使用ObjectDataSource。 我用來返回值的函數只是返回表中最後一個值。 我做了哪些更改以返回所有值。只返回1個值的對象數據源函數

public class Employees 
    { 
     public int e_number; 
     public string e_name; 
     public string e_designation; 
     private SqlConnection conn = null; 
     private SqlCommand cmd = null; 
     private string constring = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 


     public Employees() 
     { 
      conn = new SqlConnection(constring); 
      cmd = new SqlCommand(); 
     } 
     public int Employee 
     { 
      get 
      { 
       return e_number; 
      } 
      set 
      { 
       e_number = value; 
      } 
     } 

     public string Name 
     { 
      get 
      { 
       return e_name; 
      } 
      set 
      { 
       e_name = value; 
      } 
     } 
     public string Designation 
     { 
      get 
      { 
       return e_designation; 
      } 
      set 
      { 
       e_designation = value; 
      } 
     } 


     public Employees GetEmployee() 
     { 
      string strquery = "select [Number],[Name],[Designation] from [Users]"; 
      conn.Open(); 
      cmd.Connection = conn; 
      cmd.CommandText = strquery; 
      SqlDataReader objSqlDataReader = cmd.ExecuteReader(); 
      int counter = 0; 
      // ArrayList myObj = new ArrayList(); 
      // Employees objEmployees = new Employees(); 
      Employees emp = null; 

      //if (objSqlDataReader.Read()) 
      while(objSqlDataReader.Read()) 
      { 
       emp = new Employees(); 
       // myObj[counter] = new Employees(); 
       // Employees employee = new Employees(); 
       emp.Employee = (int)objSqlDataReader["Number"]; 
       emp.Name=(string)objSqlDataReader["Name"]; 
       emp.Designation = (string)objSqlDataReader["Designation"]; 



       // objEmployees.e_number = (int)objSqlDataReader["Number"]; 
       // objEmployees.e_name = (string)objSqlDataReader["Name"]; 
       //objEmployees.e_designation = (string)objSqlDataReader["Designation"]; 


      } 

      conn.Close(); 
      return emp; 




      //return objEmployees; 



     } 
    } 
} 

我已經嘗試了所有的方法,如製作對象的數組,但我無法。 請你能告訴我在我的代碼中添加什麼。

+0

你應該有隻有屬性單獨Employee類和其他類EmployeeDataAccess這確實CRUD操作 – 2012-04-20 14:07:21

回答

1

您需要返回員工列表。你退出循環後,您只返回一個單一的一個,最後一個實例:

public List<Employees> GetEmployees() 
{ 
    .. 
    List<Employees> emps = new List<Employees>(); 
    Employees emp = null; 

    while (..) 
    { 
     emp = new Employees(); 
     .. 
     emps.Add(emp); 
    } 

    return emps; 
} 
+0

我已經嘗試了這個問題,以及。 代碼工作正常,除了沒有數據綁定到我的Gridview。 可能是什麼問題? 早先在我的代碼的一些部分我使用 列表 listofbadrows = new List (); listofbadrows.Add(dr); GridView2.DataSource = listofbadrows.CopyToDataTable(); 我該如何複製我的對象數據源 – 2012-04-20 14:11:18

+0

您的數據綁定代碼是什麼樣子的,即GridView設置如何以及數據如何填充到列上?可以幫助張貼,以及更新到您的問題 – mellamokb 2012-04-20 14:13:03

+0

我只是放棄一個ObjectDatasource控件我的工具箱,配置它選擇上面的方法,我發佈代碼並使用上述ObjectDatasource作爲gridview的數據源。 還有其他的方法嗎? 我絕對沒有代碼在這個GridView的C#中。 – 2012-04-20 14:16:27