日期:2014-05-17 浏览次数:21289 次
        public IEntity GetEntity(IEntity entity)//目前只能根据ID查询
        {
            try
            {
                Type type = entity.GetType();
                PropertyInfo[] list = type.GetProperties();
                string sql = "select top 1 * from " + type.Name + " where ";
                foreach (PropertyInfo info in list)
                {
                    if (info.Name == GetKeyName(type.Name))
                    {
                        sql += info.Name + "=" + info.GetValue(entity, null);
                        break;
                    }
                }
                DataTable dt = Query(sql);
                if (dt.Rows.Count > 0)
                {
                    for (int j = 0; j < list.Length; j++)
                    {
                        if (list[j].Name == GetKeyName(type.Name) ||
                            dt.Rows[0][list[j].Name] is DBNull)
                        {
                            continue;
                        }
                        string columnName = list[j].Name;
                        object value = dt.Rows[0][columnName];
                        list[j].SetValue(entity, value, null);
                    }
                    return entity;
                }
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
------解决方案--------------------