2012-04-20 6 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クラスやCRUD操作を行う別のクラスのEmployeeDataAccessを持っている必要があり –

答えて

1

従業員のリストを返す必要があります。

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

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

    return emps; 
} 
+0

私もこれを試してみました:あなたがループを終了した後にのみ、最後のインスタンスを単一のものに戻ってきています。 コードは、グリッドビューにデータがバインドされない限り、正常に動作します。 何が問題になりますか? 私のコードの一部で先に使用していました リスト listofbadrows = newリスト(); listofbadrows.Add(dr); GridView2.DataSource = listofbadrows.CopyToDataTable(); オブジェクトに対してこれをどのように複製するのですか?データソース –

+0

データバインディングコードはどのように見えますか?つまり、GridViewの設定はどのようになっていますか?投稿を投稿するのに役立ちます質問 – mellamokb

+0

私はちょうどObjectDatasourceコントロールを私のツールボックスをドロップして、上記のメソッドを選択して上記のObjectDatasourceをgridviewのデータソースとして使用するように設定します。 他にもアプローチはありますか? 私はこのグリッドビューのC#には全くコードがありません。 –