对象数据源函数仅返回1个值

时间:2012-04-20 14:02:41

标签: c# asp.net object objectdatasource

我在Gridview中使用ObjectDataSource。 我用来返回值的函数只返回一个值,该值是表中的最后一个值。 我将做出哪些更改以返回所有值。

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;



        }
    }
}

我已尝试过所有方法,例如制作对象数组,但我无法做到。 请告诉我在我的代码中添加什么。

1 个答案:

答案 0 :(得分:1)

您需要返回员工列表。您只返回一个,退出循环后的最后一个实例:

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

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

    return emps;
}