C#实体类和SQL数据库表的映射关系

private void button2_Click(object sender, EventArgs e)  

        {  

            Role[] role;  

            SqlConnection con = new SqlConnection("Data Source=SLY//SQLEXPRESS;Initial Catalog=ManagerRoles;User ID=sa");  

            SqlCommand cmd = new SqlCommand("select * from Roles",con);  

            SqlDataReader dr;  

            con.Open();  

            dr = cmd.ExecuteReader();  

            DataDAL dataDal = new DataDAL();  

            role = dataDal.GetRoles(dr);  

             con.Close();  

            textBox2.Text = role[0].RoleID.ToString();  

            textBox3.Text = role[0].Names.ToString();  

             textBox4.Text = role[0].Description.ToString();  

        }  

  

 类:DataDAL  

        public Role[] GetRoles(IDataReader reader)  

       {  

            System.Collections.ArrayList al = new System.Collections.ArrayList();  

            try  

            {                

               while (reader.Read())  

               {  

                    Role role = new Role();  

                     ReaderToObject(reader, role);   

                    al.Add(role);  

                }  

           }  

             finally  

            {  

                reader.Close();  

           }  

             return (Role[])al.ToArray(typeof(Role));  

        }   

  

       private void ReaderToObject(IDataReader reader, object targetObj)

         {  

            for (int i = 0; i < reader.FieldCount; i++)  

             {  

                 System.Reflection.PropertyInfo propertyInfo = targetObj.GetType().GetProperty(reader.GetName(i));  

                if (propertyInfo != null)  

                {  

                     if (reader.GetValue(i) != DBNull.Value)  

                    {  

                        if (propertyInfo.PropertyType.IsEnum)  

                         {  

                             propertyInfo.SetValue(targetObj, Enum.ToObject(propertyInfo.PropertyType, reader.GetValue(i)), null);  

                         }  

                         else  

                         {  

                            propertyInfo.SetValue(targetObj, reader.GetValue(i), null);  

                         }  

                     }  

                 }  

             }  

         }  

 实体类:Role  

         int roleID;  

   

         public int RoleID  

         {  

             get { return roleID; }  

             set { roleID = value; }  

         }  

         string names;  

   

         public string Names  

         {  

            get { return names; }  

             set { names = value; }  

         }  

        string description;  

  

        public string Description  

         {  

            get { return description; }  

             set { description = value; }  

        }  

 

posted @ 2015-07-10 17:59  成神之路~  阅读(2887)  评论(0)    收藏  举报